> CentOS > CentOS教程 >

CentOS7下安装PostgreSQL 9.4 与 phpPgAdmin

1.安装PostgreSQL


rpm -Uvh http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpmyum install postgresql94-server postgresql94-contrib/usr/pgsql-9.4/bin/postgresql94-setup initdb启动pstgresql


systemctl enable postgresql-9.4.service
systemctl start postgresql-9.4.service
systemctl status postgresql-9.4.service2. 开放端口


firewall-cmd --permanent --add-port=5432/tcpfirewall-cmd --permanent --add-port=80/tcpfirewall-cmd --reload3.访问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 <database-name>
删除用户名可输入


$ dropuser <user-name>
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服务以应用更改


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重启以应用更改
在CentOS7系统中:


systemctl restart postgresql-9.3


9.使用phpPgAdmin管理PostgreSQL

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

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

CentOS 7的话参考下面的链接

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

使用命令更新库


yum update
现在输入命令安装phpPgAdmin:


yum install phpPgAdmin httpd
注意phpPgAdmin区分大小写,要准确使用上面所示的大小写!

默认你可以使用http://localhost/phpPgAdmin访问phpPgAdmin。若要远程访问需要继续:

编辑文件/etc/httpd/conf.d/phpPgAdmin.conf


vi /etc/httpd/conf.d/phpPgAdmin.conf
修改如下加粗的部分:

[...]

Alias /phpPgAdmin /usr/share/phpPgAdmin



<Location /phpPgAdmin>

  <IfModule mod_authz_core.c>

        # Apache 2.4

        Require all granted

        #Require host example.com

  </IfModule>

  <IfModule !mod_authz_core.c>

        # Apache 2.2

        Order deny,allow

        Allow from all

        # Allow from .example.com

    </IfModule>

</Location>启动或重启Apache服务

在CentOS 7系统中

systemctl enable httpd

systemctl start httpd 现在打开浏览器并转到http://ip-address/phpPgAdmin。终于看到下面的界面了!

使用你之前创建的用户登录,我的是用户senthil密码CentOS。

你可能会遇到:Login failed。

这是因为SELLinux可能限制用户连接到PostgreSQL,只需输入以下命令更改即可:

setsebool -P httpd_can_network_connect_db 1

现在你应该能正常登录了。

我的phpPgAdimn如下:

OK!现在你就可以使用图形化界面的phpPgAdmin创建、删除和管理数据库了。


(责任编辑:IT)