Chinaunix首页 | 论坛 | 博客
  • 博客访问: 208451
  • 博文数量: 57
  • 博客积分: 1694
  • 博客等级: 上尉
  • 技术积分: 481
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-26 16:26
文章分类

全部博文(57)

文章存档

2011年(2)

2010年(37)

2009年(18)

我的朋友

分类: LINUX

2009-12-09 14:08:21

因为PostgreSQLFreeBSD系出同门,同是加州伯克利分校的学院派,postgresql最开始也就是在unix系统运行的,应该说freebsd+postgresql应该是最好的搭吧。

不过因为需要,需要在linux下运行postgresql,正好尝试一下如下CentOS52下编译安装PostgreSQL8.4

一、安装前的准备

1、编译安装其他软件的所需的软件:

#yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

2、下载PostgreSQL8.4的源代码

下载地址:

选择一个服务器下载。如:#wget

二、编译并安装PostgreSQL8.4

#tar -zxf postgresql-8.4.0.tar.gz    # 解压文件

#cd postgresql*

#./configure --prefix=/usr/local/pgsql  --without-readline

#缺省时将自动使用 GNU Readline, (这样你可以方便地编辑和检索命令历史。)注意要--without-readline否则./configure失败,或者补全各种库,我尝试了一下失败,最后还是选择不安装

#make && make install

按照我的步骤,基本不会出错

三、配置Postgresql8.4

 (1)创建PostgreSQL的用户,设定密码
  #adduser postgres
  #passwd postgres
(2)创建PostgreSQL的数据库目录,修改目录的权限属性
  #mkdir /usr/local/pgsql/data
  #chown -R postgres /usr/local/pgsql
(3)以postgres用户登陆
  #su postgres
(4)初始化数据库集群
  #/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
 (5)修改配置文件

修改/usr/local/pgsql/data/postgresql.conf

找到#listen_addresses = ‘localhost’修改为  listen_addresses = ‘*’

修改/usr/local/pgsql/data/pg_hba.conf

# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
host    all         all         192.168.1.0/24        password

(6)启动数据库服务

#su postgres

#/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data

退出postgres用户#exit

#ps aux | grep postgres    查看postgres是否真的启动

四、PostgreSQL数据库管理

1、创建root用户,方便执行命令

#/usr/local/pgsql/bin/psql -U postgres postgres

postgres=#create role root with superuser createdb createrole login;  #创建root用户

postgres=#alter user root with password '123456';                              #修改root用户密码

2、创建常用命令快捷方式

#ln -s /usr/local/pgsql/bin/psql /usr/sbin/psql

#ln -s /usr/local/pgsql/bin/createdb /usr/sbin/createdb

#ln -s /usr/local/pgsql/bin/createuser /usr/sbin/createuser

#ln -s /usr/local/pgsql/bin/pg_dump /usr/sbin/pg_dump

#ln -s /usr/local/pgsql/bin/pg_ctl /usr/sbin/pg_ctl

3、创建表空间

#mkdir -p /data/pgsql/data/test/indexspace

#mkdir -p /data/pgsql/data/test/tablespace

#chown -R postgres /datapgsql/data

#/usr/local/pgsql/bin/psql -U postgres postgres

postgres=#CREATE TABLESPACE test_is OWNER test LOCATION '/home/db/test/indexspace';
postgres=#CREATE TABLESPACE test_ts OWNER test LOCATION '/home/db/test/tablespace';

4、创建单个数据库用户

#/usr/local/pgsql/bin/psql -U postgres postgres

postgres=#create role test with createdb login;

postgres=#alter user test with password '123456';

5、创建数据库

#createdb -D test_ts -O test -E UTF8   -T template0  testdb

在freebsd下,不需要 -T template0 ,而在centos下必须有这个,否则无法指定数据库的编码。

-D 指定表空间,-O 指定用户,-E 指定编码 -T 指定模板

6、向数据库导入数据和备份数据库

#pg_dump -U postgres testdb > testdb.dmp    #备份

#psql -U postgres testdb < testdb.dmp              #还原

阅读(1341) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~