在CentOS 7 安裝PostgreSQL 9.6.x 資料庫

在大數據的時代,資料庫不沾染一些特殊應用來因應好像就不流行了,PostgreSQL資料庫除了是DSB協議授權近乎免費的資料庫軟體外,在新的版本也陸續加入了JSON、JSONB...等新型的資料儲存模式,且PostgreSQL著名的就是『穩定性高』,世界上著名的企業不論是網路服務、金融服務...等都有實際採用的經驗,我們就先來學習如何安裝PostgreSQL吧!

一如往常,我們選用號稱『最穩定的伺服器作業系統:CentOS』來作為PostgreSQL資料庫的運作環境,相關版本如下:

  • CentOS 7 x64
  • PostgreSQL 9.6.2
讓CentOS取得最新版本的PostgreSQL

第一步:使用官方網站提供的RPM List載點取得最新的版本。(建議選擇Stable版本,測試版本並不適合用作測試、開發及產品,避免很多冤枉路啊!)

[root@localhost peter]# yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

 

開始安裝PostgreSQL

第一步:安裝postgresql-server 9.6與postgresql-contrib。

[root@localhost peter]# yum install postgresql96-server postgresql96-contrib

第二步:安裝完成後,我們必須要初始化PostgreSQL資料庫。

[root@localhost peter]# /usr/pgsql-9.6/bin/postgresql96-setup initdb
Initializing database ... OK

第三步:啟動PostgreSQL服務,並設定為開機啟動。

[root@localhost peter]# systemctl start postgresql-9.6.service
[root@localhost peter]# systemctl enable postgresql-9.6.service
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-9.6.service to /usr/lib/systemd/system/postgresql-9.6.service.

第四步:檢查安裝的版本。

[root@localhost peter]# psql --version
psql (PostgreSQL) 9.6.2

 

設定PostgreSQL

安裝完成後,我們還需要設定幾個地方,包括變更預設帳號的密碼、允許連入的網路位置、作業系統的防火牆。

第一步:每一次PostgreSQL安裝完成後,安裝程式會在系統新增一個『postgres』的帳號,我們需要更改他的密碼。

[root@localhost peter]# su - postgres
-bash-4.2$ psql -U postgres
psql (9.6.2)
Type "help" for help.

postgres=# ALTER USER postgres WITH PASSWORD '密碼'
postgres-# \q
-bash-4.2$ exit
logout

第二步:設定服務接聽的網路位置,『*』代表全部,伺服器上任意IP都可用來開放連接;或者可以指定伺服器上的特定IP來讓使用者連接。

[root@localhost peter]# vi /var/lib/pgsql/9.6/data/postgresql.conf

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'
#listen_addresses = 'localhost'         # what IP address(es) to listen on;

第三步:以上針對PostgreSQL的設定都完成後,一定要重新啟動PostgreSQL服務,以便確認設定都起用。

[root@localhost peter]# systemctl restart postgresql-9.6.service

第四步:設定可以連進來的客戶端IP,可以是特定IP,也可以是一個網段。(0.0.0.0/0代表全部允許接入)

[root@localhost peter]# vi /var/lib/pgsql/9.6/data/pg_hba.conf
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
host    all             all             0.0.0.0/0               trust

第五步:雖然這個時候PostgreSQL已經可以使用了,但使用者會因為被CentOS作業系統的防火牆擋住而無法連接,這時我們有幾個比較常見的選擇,一:在完整的基礎架構中,一般都將伺服器防火牆全部關閉,轉而由硬體防火牆接管網路;二:一般簡單的生產環境,則為PostgreSQL服務開放防火牆。

[root@localhost peter]# firewall-cmd --add-service=postgresql --permanent
success
[root@localhost peter]# firewall-cmd --reload
success

完成以上所有步驟後,可以下載PostgreSQL最後歡迎的管理軟體『pgAdmin』(官方網站)來操作PostgreSQL資料庫。