由於服務器無法連接外網,通過yum指令來安裝PostgreSQL的可能性是零,所以需要離線安裝操作。
下載離線 rpm 包:https://yum.postgresql.org/rpmchart/
由於幾個rpm彼此之間的依賴關系,所以我安裝的先后順序是:rpm -ivh example.rpm
1. postgresql11-libs-11.8-1PGDG.rhel7.x86_64.rpm
2. postgresql11-11.8-1PGDG.rhel7.x86_64.rpm
3. postgresql11-server-11.8-1PGDG.rhel7.x86_64.rpm
4. postgresql11-contrib-11.8-1PGDG.rhel7.x86_64.rpm
在PostgreSQL 11.8安裝完成之后,可以開始初始化和配置的工作了。
PostgreSQL 的主要執行文件位置都在:/usr/pgsql-11/bin,
以root身份運行:/usr/pgsql-11/bin/initdb
會在默認的 /var/lib/pgsql/11/data/ 目錄下生成PostgreSQL運行所需的基礎目錄和配置文件表空間等。
/var 目錄的磁盤空間有限,需要指定到/DATA 目錄下面去。
執行:/usr/pgsql-11/bin/initdb -D /DATA/postgresql/11/data
就可以在我們指定的目錄 /DATA/postgresql/11/data 下生成PostgreSQL運行所需的基礎目錄和配置文件表空間等。
接下來是修改PostgreSQL的systemd的啟動配置文件(initdb已經生成了默認的postgresql-11.service,初始為disable狀態):
cd /lib/systemd/system/
vim postgresql-11-transfer.service
修改兩個參數:
其中 LimitNOFILE=40960 用於指定本systemd啟動的進程可以打開的文件數量,
PGDATA=/DATA/postgresql/11/data/ 則是啟動使用的PostgreSQL data目錄區域。
然后就是修改PostgreSQL的配置文件: vim /DATA/postgresql/11/data/postgresql.conf
修改外部接入的白名單:vim /DATA/postgresql/11/data/pg_hba.conf
最后,通過systemctl啟動PostgreSQL的systemd進程:
systemctl enable postgresql-11.service
systemctl start postgresql-11.service