CentOS7源码编译安装postgresql16.0

xingyun86 3月前 288

CentOS7源码编译安装postgresql16.0

可视化管理工具:PostgreSQL: File Browser

PG15及以上版本需要 Python3+

#安装依赖包
yum install -y libicu-devel readline-devel
#下载源码包
wget https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.bz2 --no-check-certificate
tar jxvf postgresql-16.0.tar.bz2
cd postgresql-16.0
#开始编译
./configure --prefix=/home/opt/postgresql-16.0/run
make
sudo make install
sudo useradd postgres
sudo mkdir -p /home/opt/postgresql-16.0/data
sudo chown -R postgres:postgres /home/opt/postgresql-16.0/data
su - postgres
/home/opt/postgresql-16.0/run/bin/initdb -D /home/opt/postgresql-16.0/data --encoding=UTF8 --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8
/home/opt/postgresql-16.0/run/bin/pg_ctl -D /home/opt/postgresql-16.0/data -l /home/opt/postgresql-16.0/data/logfile start
/home/opt/postgresql-16.0/run/bin/createdb test
/home/opt/postgresql-16.0/run/bin/psql tes

修改本地用户密码

vim /home/opt/postgresql-16.0/data/pg_hba.conf
#把pg_hba.conf里的“trust”改为“md5”
#psql命令
ALTER USER postgres WITH PASSWORD '密码';
psql -h 127.0.0.1 -U postgres -p 5432 -W postgres -c "alter user postgres with password 'StrongPassword'";
LD_LIBRARY_PATH=/home/opt/postgresql-16.0/run/lib
#重启
/home/opt/postgresql-16.0/run/bin/pg_ctl -D /home/opt/postgresql-16.0/data -l /home/opt/postgresql-16.0/data/logfile restart

添加远程访问权限

vim /home/opt/postgresql-16.0/data/postgresql.conf
#添加一行
listen_addresses = '*'
 
vim /home/opt/postgresql-16.0/data/pg_hba.conf
#添加一行
host all postgres 0.0.0.0/0 md5
 
#重启
/home/opt/postgresql-16.0/run/bin/pg_ctl -D /home/opt/postgresql-16.0/data -l /home/opt/postgresql-16.0/data/logfile restart

Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错的问题

Postgres 15 从pg_database表中删除了 datlastsysoid 字段引发此错误。

解决方法1:升级navicat

解决方法2:降级pgsql

解决方法3:修改dll

打开 Navicat 安装目录,找到libcc.dll文件,可以先将其备份一下

在任何十六进制编辑器中打开此文件,如果需要,您可以使用在线工具,例如 https://hexed.it/

在文件中搜索“SELECT DISTINCT datlastsysoid”,并将其替换为“SELECT DISTINCT dattablespace”

重启navicat,可以发现,无论老和新版本的pgsql,都可以正常访问了。


×
打赏作者
最新回复 (0)
只看楼主
全部楼主
返回