如何在CentOS 7/6.5/6.4 下安裝PostgreSQL 9.3 與 phpPgAdmin

來源:互聯網
上載者:User

如何在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 的:請點這裡

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.