改版说明

上一次进行了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' ;

原文地址:http://www.cnblogs.com/jinanxiaolaohu/p/16928904.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性