本篇介紹如何在 CentOS Linux 中安裝 PostgreSQL 資料庫伺服器。
安裝 PostgreSQL 資料庫
在 CentOS 中若要安裝 PostgreSQL,可以從 CentOS 官方套件庫來安裝(建議選項),若是有特殊需要,一定要安裝較新的版本,則可由 PostgreSQL 所提供的套件庫來安裝。
CentOS 官方套件庫
在 CentOS Linux 的官方套件庫中已經有收錄 PostgreSQL 的套件,所以只要使用 yum
即可直接安裝:
# 安裝 PostgreSQL 伺服器
sudo yum install postgresql-server postgresql-contrib
安裝好之後,第一次使用前要進行 PostgreSQL 資料庫初始化設定:
# 初始化 PostgreSQL 資料庫
sudo postgresql-setup initdb
立即啟動 PostgreSQL 伺服器:
# 啟動 PostgreSQL 伺服器 sudo systemctl start postgresql
設定讓 PostgreSQL 伺服器在開機時可以自動啟動:
# 設定開機自動啟動 PostgreSQL 伺服器 sudo systemctl enable postgresql
這樣就完成安裝 PostgreSQL 資料庫的伺服器了。
PostgreSQL 套件庫
若需要比較新版的 PostgreSQL,則可從 PostgreSQL 官方提供的套件庫來安裝。首先從 PostgreSQL 的網頁中尋找對應的套件庫,下載並安裝。
# 下載 PostgreSQL 套件庫資訊 wget https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm # 安裝 PostgreSQL 套件庫資訊與 EPEL sudo yum install pgdg-redhat-repo-latest.noarch.rpm epel-release
接著即可安裝指定版本的 PostgreSQL 了:
# 安裝 11 版 PostgreSQL sudo yum install postgresql11-server postgresql11-contrib # 安裝 10 版 PostgreSQL sudo yum install postgresql10-server postgresql10-contrib # 安裝 9.6 版 PostgreSQL sudo yum install postgresql96-server postgresql96-contrib # 安裝 9.5 版 PostgreSQL sudo yum install postgresql95-server postgresql95-contrib # 安裝 9.4 版 PostgreSQL sudo yum install postgresql94-server postgresql94-contrib
接著按照自己安裝的版本,初始化 PostgreSQL 資料庫:
# 初始化 PostgreSQL 資料庫
sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
立即啟動 PostgreSQL 伺服器:
# 啟動 PostgreSQL 伺服器 sudo systemctl start postgresql-11
設定讓 PostgreSQL 伺服器在開機時可以自動啟動:
# 設定開機自動啟動 PostgreSQL 伺服器 sudo systemctl enable postgresql-11
連線與防火牆
PostgreSQL 預設只會開放本機 (localhost)的連線進入,若想要讓外部的使用者亦可透過網路連線進來存取資料,就要修改其設定。
編輯 /var/lib/pgsql/11/data/postgresql.conf
設定檔,依據自己的需求修改 listen_addresses
屬性,指定要傾聽(listen)的網路介面:
# listen_addresses = 'localhost' # listen_addresses = '192.168.56.4' listen_addresses = '*'
編輯 /var/lib/pgsql/11/data/pg_hba.conf
設定檔,加入允許存取 PostgreSQL 資料庫的網段:
# 允許 192.168.56.0/24 的所有連線
host all all 192.168.56.0/24 trust
更改 PostgreSQL 的設定之後,要重新啟動讓設定生效:
# 重新啟動 PostgreSQL 服務
sudo systemctl restart postgresql-11
接著要開啟 CentOS Linux 系統的防火牆:
# 將 postgresql 服務新增至 public 區域中 sudo firewall-cmd --zone=public --add-service=postgresql # 永久將 postgresql 服務新增至 public 區域中 sudo firewall-cmd --zone=public --permanent --add-service=postgresql
這樣就可以讓外部的使用者存取 PostgreSQL 資料庫了。
管理 PostgreSQL 資料庫
在安裝 PostgreSQL 資料庫時,預設會建立一個專門用於管理資料庫用的 postgres
Linux 系統使用者帳號與 PostgreSQL 使用者帳號,在管理 PostgreSQL 資料庫時就要使用這個帳號來進行。
# 切換成 postgres 使用者 sudo -i -u postgres # 進入 PostgreSQL 指令介面 psql
在進入 PostgreSQL 指令介面之後,就可以進行各項 PostgreSQL 的管理,關於 psql
的操作方式,可參考官方的手冊。
若要以一般使用者的權限來使用 PostgreSQL 資料庫,要先建立帳號以及對應的資料庫,然後再以對應的帳號執行 psql
,即可進入 PostgreSQL 資料庫:
# 新增 PostgreSQL 使用者 sudo -u postgres createuser gtwang # 新增 PostgreSQL 資料庫 sudo -u postgres createdb gtwang # 進入 PostgreSQL 資料庫 psql
關於更詳細的 PostgreSQL 操作,可以參考另外一篇 Ubuntu Linux 18.04 安裝與使用 PostgreSQL 資料庫教學,或是官方的文件。
參考資料:Linode、JOVE PATER LAB