如何在CentOS 7/6.5/6.4 下安裝PostgreSQL 9.3 與 phpPgAdmin
PostgreSQL是一個強大開源的對象關聯類型資料庫系統,它能運行於幾乎所有主要的作業系統,包括Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、Mac OS、Solaris、Tru64)、Windows OS。在這篇教程裡,我們將學習如何在CentOS7/6.5/6.4 server 中建立PostgreSQL。
1.安裝PostgreSQL
首先根據你的伺服器架構添加PostgreSQL庫:
對CentOS 6.x 32bit:
rpm -Uvh http://yum.postgresql.org/9.3/RedHat/rhel-6-i386/pgdg-centos93-9.3- 1.noarch.rpm
對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 <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服務以應用更改
在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-scientific-linux-6/
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 6.x系統中
service httpd start
chkconfig httpd on
在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建立、刪除和管理資料庫了。
英文原文:How To Install PostgreSQL 9.3 And phpPgAdmin In CentOS 7/6.5/6.4
譯者:暗 想瞭解作者請訪問幫客之家
本文由 幫客之家翻譯組 原創翻譯 幫客之家推出
本文永久更新連結地址:
------------------------------------華麗麗的分割線------------------------------------
CentOS 6.3環境下yum安裝PostgreSQL 9.3
PostgreSQL緩衝詳述
Windows平台編譯 PostgreSQL
Ubuntu下LAPP(Linux+Apache+PostgreSQL+PHP)環境的配置與安裝
Ubuntu上的phppgAdmin安裝及配置
CentOS平台下安裝PostgreSQL9.3
PostgreSQL配置Streaming Replication叢集
------------------------------------華麗麗的分割線------------------------------------
PostgreSQL 的詳細介紹:請點這裡
PostgreSQL 的:請點這裡