在大數據的時代,資料庫不沾染一些特殊應用來因應好像就不流行了,PostgreSQL資料庫除了是DSB協議授權近乎免費的資料庫軟體外,在新的版本也陸續加入了JSON、JSONB...等新型的資料儲存模式,且PostgreSQL著名的就是『穩定性高』,世界上著名的企業不論是網路服務、金融服務...等都有實際採用的經驗,我們就先來學習如何安裝PostgreSQL吧!
一如往常,我們選用號稱『最穩定的伺服器作業系統:CentOS』來作為PostgreSQL資料庫的運作環境,相關版本如下:
- CentOS 7 x64
- PostgreSQL 9.6.2
第一步:使用官方網站提供的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-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安裝完成後,安裝程式會在系統新增一個『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資料庫。