麒麟信安V3.4 安裝PG15的過程V2.0

改版說明

上一次進行了PG的安裝當時發現自己少加了一部分ossp的處理.
這裏補充上...不然挺浪費時間的. 

背景

發現基於OpenEuler的幾個系統使用CentOS的rpm包
安裝PG數據庫時有問題. 會提示缺少依賴的so文件.
今天想着解決一下, 就百度了一下並且進行自己的總結.
源碼安裝PG15並且進行部分設置.

第一部分介質準備.

PG15的源碼
https://www.postgresql.org/ftp/source/v15.0/
準備進行export監控的工具
https://www.postgresql.org/ftp/source/v15.0/

參數配置

Study From https://cdn.modb.pro/db/411245
我們這邊一般是使用 OLTP的數據庫, 所以準備進行8KB的設置.
tar -zxvf postgresql-15.0.tar.gz && cd postgresql-15.0
./configure --prefix=/usr/pgsql-15/ --with-blocksize=8 --with-ossp-uuid
# 注意我的機器配置時間大約是 16s 
# 注意原文是使用的ubuntu類似的路徑, 我這裏使用的是CentOS類似的路徑
# 注意建議能夠上網的基礎上安裝readline  yum install readline* -y
# 官網解釋爲: 
readline 也就是命令行編輯,
關閉的話,你直接用psql 就不能編輯命令行,
如果輸錯指令,不能回滾命令歷史記錄,只能手工重新輸入。

編譯安裝

# configure之後可以直接進行make
time make
# 注意這一步的時間可長可短. 
#我的機器要花5min才能make完 
#我可以乘機泡一包泡麪.
make install
# 注意 這裏可以複習一下
make 是進行編譯
make install 是根據 prefix的配置進行創建文件夾.
會有如下的命令出現.
/usr/bin/mkdir -p '/usr/pgsql-15/lib/pgxs/config

初始化數據庫以及配置啓動

# 創建用戶和數據數據目錄
useradd postgres
mkdir -p  /var/lib/pgsql/15/data/
chown postgres:postgres /var/lib/pgsql/ -R
su - postgres
# 初始化數據庫
# 注意這一步是postgres的用戶
cd /usr/pgsql-15/bin
./initdb -D /var/lib/pgsql/15/data/
初始化數據庫可以完成
根據提示可以使用如下命令啓動數據庫
./pg_ctl -D /var/lib/pgsql/15/data/  start

修改配置

  • 第一步: 修改環境變量
# 想免密登錄可以使用 PGPASSWORD 也可以使用PG_HBA. 
# 注意 bin data 以及 lib建議都添加上表好一些. 
# 注意啓動可能沒有socket 文件 pg 命令需要 -h進行指定.
cat > /etc/profile.d/pg.sh <<EOF
export PATH=$PATH:/usr/pgsql-15/bin
export PGPASSWORD=Yourpassword
export PGDATA=/var/lib/pgsql/15/data/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/pgsql-15//lib
EOF

增加uuid-ossp的設置

建議還是有一個可以安裝rpm包的centos8的機器然後基於同版本來拉取文件
今天凌晨進行安裝時發現了兩個地方.有差池.
需要.so文件以及先關的 oss的文件. 主要如下如下:
/usr/pgsql-15/share/extension/
/usr/pgsql-15/lib
需要從其他機器上面將這兩個目錄下面的 ossp開頭的文件複製過來
不然每次安裝都會報錯.
並且注意 保本一定要一致,不然也會報錯

ERROR: incompatible library "/usr/pgsql-15/lib/uuid-ossp.so": version mismatch

修改配置

  • 第二步: 數據庫參數配置
vim /var/lib/pgsql/15/data/pg_hba.conf
增加一行:
host    all             all             0.0.0.0/0            md5
# 保證外面機器需要密碼訪問.
vim /var/lib/pgsql/15/data/postgresql.conf
修改主要是
listen 修改爲 * 可以外部訪問(與上面一個兩相呼應)
port 修改掉注意
max_connection 可以修改爲 1000-2000 (根據產品而定)

修改配置

  • 第三步 創建service文件.
  • 可以模仿之前的版本進行處理
cat >/usr/lib/systemd/system/postgresql-15.service <<EOF
[Unit]
Description=PostgreSQL 15 database server
Documentation=https://www.postgresql.org/docs/15/static/
After=syslog.target
After=network.target

[Service]
Type=simple
User=postgres
Group=postgres

Environment=PGDATA=/var/lib/pgsql/15/data/
OOMScoreAdjust=-1000
Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
Environment=PG_OOM_ADJUST_VALUE=0
#ExecStartPre=/usr/pgsql-15/bin/postgresql-15-check-db-dir ${PGDATA}
ExecStart=/usr/pgsql-15/bin/postmaster -D ${PGDATA} 
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=0
[Install]
WantedBy=multi-user.target
EOF

設置開機啓動

systemctl daemon-reload
systemctl enable postgresql-15
systemctl stop postgresql-15
# 注意這一步 必須使用非root用戶進行關閉.
su - postgres -c pg_ctl -D /var/lib/pgsql/15/data/  stop
systemctl restart postgresql-15

設置密碼

登錄pg數據庫
psql -U postgres
設置postgres 默認賬戶的密碼
alter user postgres with password 'Testxxxxxxxx' ;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章