1. 程式人生 > 實用技巧 >linux離線安裝postgresql

linux離線安裝postgresql

說明

需要在內網的伺服器上搭建sonarqube服務,發現最新的sonarqube 8.3版本居然只支援三個資料庫了:Oracle、SQL Server和Postgresql。

沒有之前習慣使用的Mysql了,三選一,相對來說Postgresql最輕量且免費,就選它了。

由於對Postgresql不怎麼熟,又是離線安裝,作一下安裝記錄筆記。

下載

下載地址:https://www.postgresql.org/download/

有不同作業系統對應的版本,這裡選擇自己使用的Red Hat系列。

之後選擇對應的資料庫版本和作業系統版本,說明文件上線上通過yum安裝,往下拉。

在Direct RPM download一節會有安裝包的下載地址。

點進去,這裡我們選擇穩定的12及對應作業系統為RHEL 7的版本,

最終應該有以下幾個包,分別進行下載:

安裝

直接進行安裝,這裡我沒有安裝 postgresql12-contrib。

rpm -ivh postgresql12-libs-12.2-2PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql12-12.2-2PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql12-server-12.2-2PGDG.rhel7.x86_64.rpm

安裝很順利,沒有任何依賴和錯誤需要解決。

初始化

/usr/pgsql-12/bin/postgresql-12-setup initdb

啟動服務

systemctl enable postgresql-12
systemctl start postgresql-12

配置IP和埠

vi /var/lib/pgsql/12/data/postgresql.conf

按需修改以下兩行:

# *表示監聽所有的ip資訊,也可以使用localhost、127.0.0.1等
listen_addresses = '*'  
# 預設的監聽埠為5432,也可以換為其它的
port = 5432

修改同目錄下的pg_hba.conf檔案,設定允許訪問的ip,這裡我因為是測試伺服器,所以設定所有:

host all all 0.0.0.0/0 md5

重啟:

systemctl restart postgresql-12

這期間可以用以curl命令測試服務是否正常,可以在其它機器指定ip訪問測試遠端訪問是否以開放,顯示以下類似資訊表示正常:

curl 127.0.0.1:5433
curl: (52) Empty reply from server

預設使用者與密碼方式登入

經過上面配置已經可以遠端使用使用者名稱、密碼方式登入postgresql,但是本機反而不能使用(本機依然命令列免密方式),導致如果應用在同一臺機器使用jdbc連線將失敗,搭建sonarqube服務過程中就踩了這個坑。

因此修改postgresql自帶超級使用者postgres的密碼方便後續使用。

切換到postgres使用者,並進入psql命令列,如果修改了埠,需要帶上埠號:

su - postgres
psql -p 5433

修改密碼:

alter user postgres with password postgres’;

依然修改_hba.conf檔案,使本機也使用密碼方式:

#load all all    peer
local all all   md5
#host all all 127.0.0.1/32 ident
host all all 127.0.0.1/32 md5

建立sonar使用者

進入psql命令列,如果已修改為密碼方式,需要輸入密碼:

su - postgres
psql -p 5433

建立使用者

create user sonar with password 'sonar';

建立資料庫

建立sonar資料庫:

create database sonar;

將sonar資料庫授權給前面建立的sonar使用者:

grant all privileges on database sonar to sonar;

至此,可以在sonarqube中配置此postgresql的jdbc資訊進行使用了。