一、下載下傳離線安裝包
PostgreSQL: File Browser
我這裡用的是9.6.10
二、下載下傳gcc-c++和readline
阿裡雲開源鏡像站資源目錄
三、安裝
在根路徑下建立data目錄,作為我們得工作目錄
1,gcc-c++環境檢測
rpm -qa | grep gcc-c++
2,gcc-c++環境安裝
将下載下傳好的gcc-c++放到data目錄下(最好所有的gcc檔案放一個單獨檔案夾)
執行指令:rpm -Uvh *.rpm --nodeps --force
3,檢視安裝結果
gcc -v
g++ -v
4,安裝postgresql
把postgresql安裝包放到data目錄下進行解壓:
tar -zxvf postgresql-9.6.10.tar.gz
切換到解壓目錄下,執行安裝指令:
./configure --prefix=/data/postgresql
報錯:
這是缺少readline,執行指令檢視是否存在:
rpm -qa | grep readline
實際上是存在的, 出現這種情況一般是缺少相關 devel 包,将我們之前下載下傳的兩個readline包 放到data下進行安裝:注意先後順序
rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
rpm -ivh readline-devel-6.2-11.el7.x86_64.rpm
安裝完成後,再次切換到解壓得postgresql目錄下:
./configure --prefix=/data/postgresql
postgresql安裝完成。
進行編譯:make
注:編譯時間會較長,請耐心等待。
make install
編譯完成。
四、配置
root使用者不能啟動postgresql,是以需要建立一個普通使用者來啟動資料庫
建立使用者:useradd postgres
設定密碼:passwd postgres
切換到已安裝得postgresql路徑下:
建立目錄 data(資料庫存儲) 和 log(日志存儲)
将postgresql的目錄權限全部賦予給postgres使用者
chown -R postgres:postgres /data/postgresql
配置環境變量:
執行指令:vim /etc/profile (i鍵進入編輯狀态)
在最下面添加配置:
export PGDATA=/data/postgresql/data
export PGHOME=/data/postgresql
export PATH=$PGHOME/bin:$PATH
按ESC退出編輯,按:wq儲存并退出。
更新配置:source /etc/profile
切換為 postgres 使用者:su postgres
直接使用指令 initdb來完成資料庫初始化操作
切換到postgresql下data目錄下:
執行指令:vim pg_hba.conf
退出儲存即可。
執行指令:vim postgresql.conf
執行指令:systemctl status firewalld.service
檢視防火牆是否關閉
我這裡是已經關閉了,如果是下圖:
可以看見伺服器防火牆處于開啟狀态,使用指令 systemctl stop firewalld.service 關閉防 火 牆。(ps:使用指令 systemctl disable firewalld.service ,可以停用防火牆開機自啟)
切換到postgresql源碼包的解壓目錄下;
cp contrib/start-scripts/linux /etc/init.d/postgresql
我這裡出現了一個錯誤:
注意看:執行這個指令需要是root使用者,切換成root使用者執行即可;
執行指令:vim /etc/init.d/postgresql
賦予該檔案執行權限:
chmod +x /etc/init.d/postgresql
設定服務開機自啟:
chkconfig --add postgresql
啟動資料庫:
service postgresql start
切換postgres使用者,使用psql進行登入
使用\password進行設定密碼
使用\l 進行檢視