centos v6.5 yum 部署 最新版PostgreSQL (9.3)
目前最新的CentOS 6.5中,仍然使用的是PostgreSQL 8.4版本。为了满足另一应用系统的需求,必须安装PostgreSQL 9及以上版本。本文将叙述如何使用PostgreSQL官方软件仓库和YUM工具,实现自动安装PostgeSQL 9.3。我使用的CentOS版本为6.5,该操作方法同样适用于使用CentOS 5, RedHat或者Fedora版本的朋友,只是需要注意下载文件时有对应的版本选择。
1、下载并安装PostgreSQL官方软件仓库
访问http://yum.pgrpms.org/repopackages.php,选择对应的操作系统版本,下载repo rpm文件。对应我的操作系统CentOS 6.5 64位版本,使用wget命令下载,操作如下:
|
1
2
|
wget http://yum.pgrpms.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm |
输出如下:
|
[root@mycentos ~]# wget http://yum.pgrpms.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm
--2014-03-31 14:41:30-- http://yum.pgrpms.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm
Resolving yum.pgrpms.org... 98.129.198.114, 2001:4800:7903:3::114
Connecting to yum.pgrpms.org|98.129.198.114|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5240 (5.1K) [application/x-redhat-package-manager]
Saving to: 鈥減gdg-centos93-9.3-1.noarch.rpm鈥
100%[=======================================================================================================================================>] 5,240 --.-K/s in 0s
2014-03-31 14:41:32 (26.2 MB/s) - 鈥減gdg-centos93-9.3-1.noarch.rpm鈥saved [5240/5240]
|
|
1
|
rpm -ivh pgdg-centos93-9.3-1.noarch.rpm |
|
warning: pgdg-centos93-9.3-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
Preparing… ########################################### [100%]
1:pgdg-centos93 ########################################### [100%]
|
编辑CentOS-Base.repo,将目前的CentOS仓库中的版本排除
|
1
|
vi /etc/yum.repos.d/CentOS-Base.repo |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
[base]name=CentOS-$releasever – Basemirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6exclude=postgresql*#released updates[updates]name=CentOS-$releasever – Updatesmirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6exclude=postgresql* |
此时可以站看最新的postgreSQL出现在可用软件列表中
|
1
|
yum list postgres* |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
Loaded plugins: fastestmirror, securityLoading mirror speeds from cached hostfile * base: centos.mirror.cdnetworks.com * extras: centos.mirror.cdnetworks.com * updates: centos.mirror.cdnetworks.comInstalled Packagespostgresql93.i686 9.3.4-1PGDG.rhel6 @pgdg93postgresql93-contrib.i686 9.3.4-1PGDG.rhel6 @pgdg93postgresql93-devel.i686 9.3.4-1PGDG.rhel6 @pgdg93postgresql93-libs.i686 9.3.4-1PGDG.rhel6 @pgdg93postgresql93-plperl.i686 9.3.4-1PGDG.rhel6 @pgdg93postgresql93-server.i686 9.3.4-1PGDG.rhel6 @pgdg93Available Packagespostgresql93-debuginfo.i686 9.3.4-1PGDG.rhel6 pgdg93 postgresql93-docs.i686 9.3.4-1PGDG.rhel6 pgdg93 postgresql93-odbc.i686 09.02.0100-1PGDG.rhel6 pgdg93 postgresql93-odbc-debuginfo.i686 09.02.0100-1PGDG.rhel6 pgdg93 postgresql93-plpython.i686 9.3.4-1PGDG.rhel6 pgdg93 postgresql93-pltcl.i686 9.3.4-1PGDG.rhel6 pgdg93 postgresql93-test.i686 9.3.4-1PGDG.rhel6 pgdg93 postgresql_autodoc.noarch 1.41-1.rhel6 pgdg93 |
将旧版本中的postgresql软件包全部删除
|
1
|
yum remove postgresql postgresql-contrib postgresql-libs postgresql-devel postgresql-plperl postgr postgresql-devel |
Loaded plugins: fastestmirror, securitySetting up Remove ProcessNo Match for argument: postgrLoading mirror speeds from cached hostfile * base: centos.mirror.cdnetworks.com * extras: centos.mirror.cdnetworks.com * updates: centos.mirror.cdnetworks.comResolving Dependencies--> Running transaction check---> Package postgresql93.i686 0:9.3.4-1PGDG.rhel6 will be erased--> Processing Dependency: postgresql93 = 9.3.4-1PGDG.rhel6 for package: postgresql93-server-9.3.4-1PGDG.rhel6.i686---> Package postgresql93-contrib.i686 0:9.3.4-1PGDG.rhel6 will be erased---> Package postgresql93-devel.i686 0:9.3.4-1PGDG.rhel6 will be erased---> Package postgresql93-libs.i686 0:9.3.4-1PGDG.rhel6 will be erased---> Package postgresql93-plperl.i686 0:9.3.4-1PGDG.rhel6 will be erased--> Running transaction check---> Package postgresql93-server.i686 0:9.3.4-1PGDG.rhel6 will be erased--> Finished Dependency ResolutionDependencies Resolved================================================================================================================================================================================= Package Arch Version Repository Size=================================================================================================================================================================================Removing: postgresql93 i686 9.3.4-1PGDG.rhel6 @pgdg93 5.1 M postgresql93-contrib i686 9.3.4-1PGDG.rhel6 @pgdg93 1.6 M postgresql93-devel i686 9.3.4-1PGDG.rhel6 @pgdg93 5.9 M postgresql93-libs i686 9.3.4-1PGDG.rhel6 @pgdg93 616 k postgresql93-plperl i686 9.3.4-1PGDG.rhel6 @pgdg93 159 kRemoving for dependencies: postgresql93-server i686 9.3.4-1PGDG.rhel6 @pgdg93 15 MTransaction Summary=================================================================================================================================================================================Remove 6 Package(s)Installed size: 29 MIs this ok [y/N]: yDownloading Packages:Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning Transaction Erasing : postgresql93-contrib-9.3.4-1PGDG.rhel6.i686 1/6 Erasing : postgresql93-devel-9.3.4-1PGDG.rhel6.i686 2/6 Erasing : postgresql93-plperl-9.3.4-1PGDG.rhel6.i686 3/6 Erasing : postgresql93-server-9.3.4-1PGDG.rhel6.i686 4/6 Erasing : postgresql93-9.3.4-1PGDG.rhel6.i686 5/6 Erasing : postgresql93-libs-9.3.4-1PGDG.rhel6.i686 6/6 Verifying : postgresql93-9.3.4-1PGDG.rhel6.i686 1/6 Verifying : postgresql93-devel-9.3.4-1PGDG.rhel6.i686 2/6 Verifying : postgresql93-plperl-9.3.4-1PGDG.rhel6.i686 3/6 Verifying : postgresql93-contrib-9.3.4-1PGDG.rhel6.i686 4/6 Verifying : postgresql93-libs-9.3.4-1PGDG.rhel6.i686 5/6 Verifying : postgresql93-server-9.3.4-1PGDG.rhel6.i686 6/6 Removed: postgresql93.i686 0:9.3.4-1PGDG.rhel6 postgresql93-contrib.i686 0:9.3.4-1PGDG.rhel6 postgresql93-devel.i686 0:9.3.4-1PGDG.rhel6 postgresql93-libs.i686 0:9.3.4-1PGDG.rhel6 postgresql93-plperl.i686 0:9.3.4-1PGDG.rhel6 Dependency Removed: postgresql93-server.i686 0:9.3.4-1PGDG.rhel6 Complete! |
2、 开始安装最新版PostgreSQL
现在已经可以使用yum直接安装
|
1
|
yum -y install postgresql postgresql-contrib postgresql-libs postgresql-plperl postgresql-server postgresql-devel |
Loaded plugins: fastestmirror, securityLoading mirror speeds from cached hostfile * base: centos.mirror.cdnetworks.com * extras: centos.mirror.cdnetworks.com * updates: centos.mirror.cdnetworks.comSetting up Install ProcessResolving Dependencies--> Running transaction check---> Package postgresql93.i686 0:9.3.4-1PGDG.rhel6 will be installed---> Package postgresql93-contrib.i686 0:9.3.4-1PGDG.rhel6 will be installed---> Package postgresql93-devel.i686 0:9.3.4-1PGDG.rhel6 will be installed---> Package postgresql93-libs.i686 0:9.3.4-1PGDG.rhel6 will be installed---> Package postgresql93-plperl.i686 0:9.3.4-1PGDG.rhel6 will be installed---> Package postgresql93-server.i686 0:9.3.4-1PGDG.rhel6 will be installed--> Finished Dependency ResolutionDependencies Resolved================================================================================================================================================================================= Package Arch Version Repository Size=================================================================================================================================================================================Installing: postgresql93 i686 9.3.4-1PGDG.rhel6 pgdg93 998 k postgresql93-contrib i686 9.3.4-1PGDG.rhel6 pgdg93 480 k postgresql93-devel i686 9.3.4-1PGDG.rhel6 pgdg93 1.5 M postgresql93-libs i686 9.3.4-1PGDG.rhel6 pgdg93 193 k postgresql93-plperl i686 9.3.4-1PGDG.rhel6 pgdg93 55 k postgresql93-server i686 9.3.4-1PGDG.rhel6 pgdg93 4.0 MTransaction Summary=================================================================================================================================================================================Install 6 Package(s)Total download size: 7.2 MInstalled size: 29 MDownloading Packages:(1/6): postgresql93-9.3.4-1PGDG.rhel6.i686.rpm | 998 kB 00:01 (2/6): postgresql93-contrib-9.3.4-1PGDG.rhel6.i686.rpm | 480 kB 00:00 (3/6): postgresql93-devel-9.3.4-1PGDG.rhel6.i686.rpm | 1.5 MB 00:00 (4/6): postgresql93-libs-9.3.4-1PGDG.rhel6.i686.rpm | 193 kB 00:00 (5/6): postgresql93-plperl-9.3.4-1PGDG.rhel6.i686.rpm | 55 kB 00:00 (6/6): postgresql93-server-9.3.4-1PGDG.rhel6.i686.rpm | 4.0 MB 00:01 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Total 1.2 MB/s | 7.2 MB 00:06 Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning Transaction Installing : postgresql93-libs-9.3.4-1PGDG.rhel6.i686 1/6 Installing : postgresql93-9.3.4-1PGDG.rhel6.i686 2/6 Installing : postgresql93-server-9.3.4-1PGDG.rhel6.i686 3/6 Installing : postgresql93-plperl-9.3.4-1PGDG.rhel6.i686 4/6 Installing : postgresql93-devel-9.3.4-1PGDG.rhel6.i686 5/6 Installing : postgresql93-contrib-9.3.4-1PGDG.rhel6.i686 6/6 Verifying : postgresql93-9.3.4-1PGDG.rhel6.i686 1/6 Verifying : postgresql93-devel-9.3.4-1PGDG.rhel6.i686 2/6 Verifying : postgresql93-plperl-9.3.4-1PGDG.rhel6.i686 3/6 Verifying : postgresql93-contrib-9.3.4-1PGDG.rhel6.i686 4/6 Verifying : postgresql93-libs-9.3.4-1PGDG.rhel6.i686 5/6 Verifying : postgresql93-server-9.3.4-1PGDG.rhel6.i686 6/6 Installed: postgresql93.i686 0:9.3.4-1PGDG.rhel6 postgresql93-contrib.i686 0:9.3.4-1PGDG.rhel6 postgresql93-devel.i686 0:9.3.4-1PGDG.rhel6 postgresql93-libs.i686 0:9.3.4-1PGDG.rhel6 postgresql93-plperl.i686 0:9.3.4-1PGDG.rhel6 postgresql93-server.i686 0:9.3.4-1PGDG.rhel6 Complete! |
3、初始化数据库并启动
安装操作顺利完成后,对数据库进行初始化,然后启动服务
|
1
2
3
4
|
service postgresql-9.3 initdbInitializing database: [ OK ]service postgresql-9.3 startStarting postgresql-9.3 service: [ OK ] |
|
1
2
3
|
chkconfig postgresql-9.3 onchkconfig | grep postgrespostgresql-9.3 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
4、 配置工作环境
PostgreSQL数据库操作的默认账户为postgres,其操作目录为/var/lib/pgsql,配置文件.bash_profile中的默认内容为
|
1
2
3
|
[ -f /etc/profile ] && source /etc/profilePGDATA=/var/lib/pgsql/9.1/dataexport PGDATA |
以上配置中包括了数据库所在的路径,但是没有可执行命令文件所在的目录,为操作便利,更正如下:
|
1
2
3
4
5
|
[ -f /etc/profile ] && source /etc/profilePGDATA=/var/lib/pgsql/9.1/dataexport PGDATAPATH=$PATH:$HOME/bin:/usr/pgsql-9.1/binexport PATH |
5、设置默认账户postgres的操作密码
|
1
2
3
4
5
6
7
|
su – postgres-bash-4.1$ psql postgres postgrespsql (9.2.1)Type “help” for help.postgres=# alter user postgres with password ‘postgres’;ALTER ROLEpostgres=# |
6、 提升postgreSQL安全
默认配置中,postgreSQL使用明文存储密码,非常不安全,需要修改配置文件,更改密码验证方式为md5
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
vi /var/lib/pgsql/9.1/data/pg_hba.conf# Put your actual configuration here# ———————————-## If you want to allow non-local connections, you need to add more# “host” records. In that case you will also need to make PostgreSQL# listen on a non-local interface via the listen_addresses# configuration parameter, or via the -i or -h command line switches.# TYPE DATABASE USER ADDRESS METHOD# “local” is for Unix domain socket connections onlylocal all all md5# IPv4 local connections:host all all 192.168.1.0/24(输入你想远程的网段) md5# IPv6 local connections:host all all ::1/128 md5# Allow replication connections from localhost, by a user with the# replication privilege.#local replication postgres peer#host replication postgres 127.0.0.1/32 ident#host replication postgres ::1/128 ident |
第一种方式: 直接使用命令操作
|
1
2
3
|
service postgresql-9.3 restartStopping postgresql-9.3 service: [ OK ]Starting postgresql-9.3 service: [ OK ] |
允许远程连接PostgreSQL数据库
PostgreSQL的主配置文件postgresql.conf位于目录/var/lib/pgsql/9.2/data,其中CONNECTIONS AND AUTHENTICATION段中的配置如下
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#——————————————————————————# CONNECTIONS AND AUTHENTICATION#—————————————————————————— # – Connection Settings -#listen_addresses = ‘localhost’ # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to ‘localhost’, ‘*’ = all # (change requires restart) #port = 5432 # (change requires restart) |
修改完成后,需要重新启动postgresql-9.2系统服务,重新载入配置文件后方可生效。
如果修改该文件导致服务无法启动,可以查看/var/lib/pgsql/9.2/pg_log文件,查找线索进行排错。
重新启动完成后,进入postgres用户控制台,登录数据库操作界面,可以验证更改结果
|
1
2
3
4
5
6
7
8
9
10
11
12
|
su - postgres-bash-4.1$ psqlpsql (9.3.4)Type "help" for help.postgres=# show listen_addresses; listen_addresses ------------------ localhost(1 row)postgres=#
|

浙公网安备 33010602011771号