以下是在CentOS5.5上安装postgresql9.1的相关记录
(1) 从http://yum.pgrpms.org/repopackages.php 下载postgresql9.1 rpm安装包
[root@server1 ~]# wget http://yum.pgrpms.org/9.1/redhat/rhel-5-i386/pgdg-centos91-9.1-4.noarch.rpm
(2)安装pgdg-centos91-9.1-4.noarch.rpm
[root@server1 ~]# rpm -i pgdg-centos91-9.1-4.noarch.rpm
(3)更改CentOS-Base.repo
为方便通过yum安装postgresql9.1的相关软件,所以需要更改CentOS-Base.repo,以便于yum list postgresql* 能找到postgresql9.1的相关软件包
只需要在 CentOS-Base.repo的[base] and [updates]中增加'exclude=postgresql*'即可
具体操作如下:
[root@server1 ~]# cd /etc/yum.repos.d
[root@server1 yum.repos.d]# vi CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postgresql*
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postgfesql*
#packages used/produced in the build but not released
(4)通过yum list postgres*来检测相关的安装包
[root@server1 yum.repos.d]# yum list postgres*
Available Packages
postgresql91.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-contrib.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-debuginfo.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-devel.i686 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-devel.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-docs.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-jdbc.x86_64 9.1.901-1PGDG.rhel6 pgdg91
postgresql91-jdbc-debuginfo.x86_64 9.1.901-1PGDG.rhel6 pgdg91
postgresql91-libs.i686 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-libs.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-odbc.x86_64 09.00.0200-1PGDG.rhel6 pgdg91
postgresql91-odbc-debuginfo.x86_64 09.00.0200-1PGDG.rhel6 pgdg91
postgresql91-plperl.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-plpython.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-pltcl.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-python.x86_64 4.0-2PGDG.rhel6 pgdg91
postgresql91-python-debuginfo.x86_64 4.0-2PGDG.rhel6 pgdg91
postgresql91-server.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-tcl.x86_64 1.9.0-1.rhel6 pgdg91
postgresql91-tcl-debuginfo.x86_64 1.9.0-1.rhel6 pgdg91
postgresql91-test.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql_autodoc.noarch 1.40-1.rhel6 pgdg91
[root@server1 yum.repos.d]#
(6)使用yum安装postgresql9.1以及相关软件包
[root@server1 yum.repos.d]# yum install postgresql91 postgresql91-devel postgresql91-server postgresql91-libs postgresql91-contrib
(7)初始化并启动postgresql
[root@server1 yum.repos.d]# service postgresql-9.1 initdb
Initializing database: [ OK ]
[root@server1 yum.repos.d]#
[root@server1 yum.repos.d]# service postgresql-9.1 initdb
Initializing database: [ OK ]
[root@server1 yum.repos.d]#
安装postgresql注意事项:
(1)如果在initdb时失败,则很有可能是因为系统默认字符编码和postgresql所认可的不一致所导致的,这时可以通过/var/lib/pgsql/9.1/pgstartup.log的相关出错信息来确认
如果确定是编码的问题导致initdb失败,则可以通过在initdb时指定--no-locale来解决,具体方法如下
1.1 [root@GJZ bin]# su - postgres
1.2 -bash-3.2$ /usr/local/pgsql/bin/initdb --no-locale
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale C.
The default database encoding has accordingly been set to SQL_ASCII.
The default text search configuration will be set to "english".
fixing permissions on existing directory /var/lib/pgsql/9.1/data ... ok
(2) 注意修改/var/lib/pgsql/9.1/data中的postgresql.conf和pg_hba.conf文件,根据需要配置相关的访问策略
参考资料:
(1)http://www.davidghedini.com/pg/entry/install_postgresql_9_on_centos
(2)http://www.linuxfly.org/post/88/
(1) 从http://yum.pgrpms.org/repopackages.php 下载postgresql9.1 rpm安装包
[root@server1 ~]# wget http://yum.pgrpms.org/9.1/redhat/rhel-5-i386/pgdg-centos91-9.1-4.noarch.rpm
(2)安装pgdg-centos91-9.1-4.noarch.rpm
[root@server1 ~]# rpm -i pgdg-centos91-9.1-4.noarch.rpm
(3)更改CentOS-Base.repo
为方便通过yum安装postgresql9.1的相关软件,所以需要更改CentOS-Base.repo,以便于yum list postgresql* 能找到postgresql9.1的相关软件包
只需要在 CentOS-Base.repo的[base] and [updates]中增加'exclude=postgresql*'即可
具体操作如下:
[root@server1 ~]# cd /etc/yum.repos.d
[root@server1 yum.repos.d]# vi CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postgresql*
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postgfesql*
#packages used/produced in the build but not released
(4)通过yum list postgres*来检测相关的安装包
[root@server1 yum.repos.d]# yum list postgres*
Available Packages
postgresql91.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-contrib.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-debuginfo.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-devel.i686 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-devel.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-docs.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-jdbc.x86_64 9.1.901-1PGDG.rhel6 pgdg91
postgresql91-jdbc-debuginfo.x86_64 9.1.901-1PGDG.rhel6 pgdg91
postgresql91-libs.i686 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-libs.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-odbc.x86_64 09.00.0200-1PGDG.rhel6 pgdg91
postgresql91-odbc-debuginfo.x86_64 09.00.0200-1PGDG.rhel6 pgdg91
postgresql91-plperl.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-plpython.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-pltcl.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-python.x86_64 4.0-2PGDG.rhel6 pgdg91
postgresql91-python-debuginfo.x86_64 4.0-2PGDG.rhel6 pgdg91
postgresql91-server.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql91-tcl.x86_64 1.9.0-1.rhel6 pgdg91
postgresql91-tcl-debuginfo.x86_64 1.9.0-1.rhel6 pgdg91
postgresql91-test.x86_64 9.1.1-1PGDG.rhel6 pgdg91
postgresql_autodoc.noarch 1.40-1.rhel6 pgdg91
[root@server1 yum.repos.d]#
(6)使用yum安装postgresql9.1以及相关软件包
[root@server1 yum.repos.d]# yum install postgresql91 postgresql91-devel postgresql91-server postgresql91-libs postgresql91-contrib
(7)初始化并启动postgresql
[root@server1 yum.repos.d]# service postgresql-9.1 initdb
Initializing database: [ OK ]
[root@server1 yum.repos.d]#
[root@server1 yum.repos.d]# service postgresql-9.1 initdb
Initializing database: [ OK ]
[root@server1 yum.repos.d]#
安装postgresql注意事项:
(1)如果在initdb时失败,则很有可能是因为系统默认字符编码和postgresql所认可的不一致所导致的,这时可以通过/var/lib/pgsql/9.1/pgstartup.log的相关出错信息来确认
如果确定是编码的问题导致initdb失败,则可以通过在initdb时指定--no-locale来解决,具体方法如下
1.1 [root@GJZ bin]# su - postgres
1.2 -bash-3.2$ /usr/local/pgsql/bin/initdb --no-locale
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale C.
The default database encoding has accordingly been set to SQL_ASCII.
The default text search configuration will be set to "english".
fixing permissions on existing directory /var/lib/pgsql/9.1/data ... ok
(2) 注意修改/var/lib/pgsql/9.1/data中的postgresql.conf和pg_hba.conf文件,根据需要配置相关的访问策略
参考资料:
(1)http://www.davidghedini.com/pg/entry/install_postgresql_9_on_centos
(2)http://www.linuxfly.org/post/88/