如何在CentOS 7/6.5/6.4 下安装PostgreSQL 9.3 与 phpPgAdmin(一)

2015-01-21 12:22:09 · 作者: · 浏览: 13

1.安装PostgreSQL?


首先根据你的服务器架构添加PostgreSQL库:


?对CentOS 6.x 32bit:


对CentOS 6.x 64bit:


? ? rpm -Uvh http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm


对CentOS 7 64bit:


? ? rpm -Uvh http://yum.postgresql.org/9.3/redhat/rhel-7-x86_64/pgdg-centos93-9.3-1.noarch.rpm


对于其它的发行版,可查看以下链接并建立库:


http://yum.postgresql.org/repopackages.php#pg93?


使用以下命令来更新库:


? ? ? yum update?


使用以下命令来安装PostgreSQL:


? ? ? yum install postgresql93-server postgresql93-contrib?


使用以下命令来初始化PostgreSQL数据库


在CentOS 6.x 系统中:


? ? service postgresql-9.3 initdb


在CentOS 7系统中:


? ? /usr/pgsql-9.3/bin/postgresql93-setup initdb?


然后启动PostgreSQL服务并使之开机自启:


在CentOS 6.x 系统中:


? ? ? service postgresql-9.3 start


? ? ? chkconfig postgresql-9.3 on?


在CentOS 7系统中:


? ? systemctl enable postgresql-9.3


? ? systemctl start postgresql-9.3?


2.调整Iptables/Firewall


? ? 接下来调整防火墙出站规则:


在CentOS 6.x系统中:


? ? vi /etc/sysconfig/iptables?


并添加以下行


? ? -A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT


? ? -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT?


退出并保存文件。重启iptables服务:


? ?service iptables restart?


在CentOS系统中:


? ? firewall-cmd --permanent –add-port=5432/tcp


? ? firewall-cmd --permanent –add-port=80/tcp


? ? firewall-cmd --reload?


3.访问PostgreSQL常用的命令提示符


默认情况下数据库名和用户名都是postgres。切换至用户以执行相关操作:


? ? su – postgres


输入以下命令登陆:


? ? psql


会有以下样例输出:


? ? psql (9.3.5)


? ? Type "help" for help.


? ? Postgres=#?


可通过输入\q退出postgresql返回命令终端:?


4.设置用户密码


登陆至postgres命令提示符界面


? su – postgres?


? psql?


然后使用命令设置密码


? postgres=# \password postgres


? ? Enter new password:


? ? Enter it again:


? ? postgres=# \q


输入命令以建立PostgreSQL系统管理工具


? ? postgres=# CREATE EXTENSION adminpack;


? CREATE EXTENSION?


5.创建用户和数据库


例如:用户名:senthil? ? 密码:centos? 数据库名:mydb


转到postgres用户


su – postgres


创建用户senthil


$ createuser senthil


创建数据库


$ createdb mydb?


现在登陆至psql提示符界面,为用户senthil设置密码及授权对数据库mydb的访问:


$ psql?


psql (9.3.5)


Type "help" for help.?


postgres=# alter user senthil with encrypted password 'centos';


ALTER ROLE?


postgres=# grant all privileges on database mydb to senthil;


GRANT


postgres=#?


6.删除用户和数据库


首先转到postgres界面


su – postgres


输入命令


$ dropdb


删除用户名可输入


$ dropuser ?


7.配置PostgreSQL-MD5认证


MD5认证需要客户端提供一个MD5-encrypted 密码以便身份验证。你需要编辑 /var/lib/pgsql/9.3/data/pg_hba.conf文件:


vi /var/lib/pgsql/9.3/data/pg_hba.conf


添加或修改的行如下:


[...]


# TYPE? DATABASE? ? ? ? ? USER? ? ADDRESS? ? ? ? ? ? ? METHOD


?


# "local" is for Unix domain socket connections only


local? ? ? ? all? ? ? all? ? ? ? ? ? ? ? ? ? ?md5


# IPv4 local connections:


host? ? ? ? all? ? ? all? ? 127.0.0.1/32? ? ? md5


host? ? ? ? all? ? ? all? ? 192.168.1.0/24? ? md5


# IPv6 local connections:


host? ? ? ? all? ? ? all? ? ::1/128? ? ? ? ? md5


[...]


重启postgresql服务以应用更改


在CentOS 6.x系统中


service postgresql-9.3 restart?


在CentOS 7系统中


systemctl restart postgresql-9.3?


8.配置PostgreSQL-Configure TCP/IP


默认情况下,TCP/IP连接是不可行的,所以其他计算机用户不能连接到postgresql。编辑文件 /var/lib/pgsql/9.3/data/postgresql.conf可以允许连接:


vi /var/lib/pgsql/9.3/data/postgresql.conf?


找到下面的行:


[...]


#listen_addresses = 'localhost’


[...]


#port = 5432


[...]


把两行都取消并设置为你的postgresql服务器IP地址或设置为“*”监听所有客户端。如下所示:


listen_addresses = '*'


port = 5432


重启以应用更改


在CentOS6.x系统中:


/etc/init.d/postgresql-9.3 restart


在CentOS7系统中:


systemctl restart postgresql-9.3?


9.使用phpPgAdmin管理PostgreSQL


phpPgAdmin是使用PHP编写的基于web的管理工具,用于管理PostgreSQL。它只适用与PostgreSQL RPM库。


如果你没有添加PostgreSQL库,你可以添加EPEL库。


可根据下面的链接在CentOS 6.x中建立EPEL库


http://www.unixmen.com/install-epel-repository-rhel-centos-s