CentOS 7.9 安装 Postgresql v16.0 源码版

一、下载&准备工作

官网下载地址:https://www.postgresql.org/ftp/source/v16.0/

如果要其它版本,回上一级地址,可以进行选择:https://www.postgresql.org/ftp/source/

 源码包操作:

postgresql-16.0.tar.gz 复制到 Linux 的 /usr/local/ 目录下,解压缩。

#解压缩
tar zxvf postgresql-16.0.tar.gz

防火墙设置:

#防火墙开放5432端口
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload 

 

 二、编译&配置&安装&启动

尝试编译:

#配置 PostgreSQL
cd /usr/local/postgresql-16
./configure --prefix=/usr/local/postgresql

 提示没有安装C编译器。

yum install gcc-c++

执行完,再试一次,

 缺 icu 库,

yum install libicu-devel

再来。

 少 readline 库

yum install readline-devel

 少 zlib

yum install zlib

还是提示少 zlib

yum install zlib-devel

终于成功了。

 那就继续:

make && make install

需要等待一段时间编译安装,然后创建相关目录 data、log

mkdir /usr/local/postgresql/data
mkdir /usr/local/postgresql/log

 添加对应用户和权限。

# 增加用户 postgres 并赋权
useradd postgres
chown -R postgres.postgres /usr/local/postgresql
# 设置密码
passwd postgres

修改系统环境变量

vi ./etc/profile

最后写入如下内容

export PGHOME=/usr/local/postgresql
export PGDATA=/usr/local/postgresql/data
export PGLIB=/usr/local/postgresql/lib
export PATH=$PATH:$HOME/bin:$PGHOME/bin

立即生效

source /etc/profile

初始化数据库

su postgres
/usr/local/postgresql/bin/initdb -D /usr/local/postgresql/data/

 

 修改配置文件

vi /usr/local/postgresql/data/pg_hba.conf

在文件最后增加一行

host    all                 all             0.0.0.0/0           trust

启动服务

pg_ctl start -l /usr/local/postgresql/log/pg_server.log

 完成服务启动。

 

三、远程连接

修改postgresql的配置文件
# vi /var/lib/pgsql/data/postgresql.conf
# 修改监听IP,改成当前 Linux 服务器的对应 IP
listen_addresses = '10.12.58.211'

# 打开日志采集器
logging_collector = on

重启 PostgreSQL

 Navicat远程连接:

 

四、异常处理

如果出现这个问题:“datlastsysoid does not exist”

 网上列出有三条路可以走:

1. 升级 Navicat 版本到 15.0.29或16.1;(经本人测试,没用:最新的16版本,都只支持到14。)

2. 使用 PostgreSQL 15之前的版本;(改用最新的14.9版本,OK了。)

3、修改 Navicat 工具安装目录下的 libcc.dll 文件。(经本人测试,没用:是不再报错了,但是库和表都看不到的。)

原因如下:

PostgreSQL 15 从 pg_database 表中移除了 datlastsysoid 这个字段,因此 Navicat 15.0.29 或 16.1 之前的版本在查找这个字段的时候会报这个错。

下面介绍通过方法三修改Navicat工具安装目录下的libcc.dll文件的方式,去解决此错误。

修改前,将libcc.dll文件复制备份,避免修改失败造成Navicat程序崩溃。

通过 https://hexed.it/ 网址,打开libcc.dll文件。 查询找到 datlastsysoid,修改为 dattablespace。

如下图:

最后,保存下载文件,并移动到程序安装目录。

重启Navicat,再次连接成功。

但是,所有的库表表都不显示了,所以整个也是扯蛋的。

还是改用14.X版本最靠谱。

 

注:文强哥精品集,祝各位使用愉快!

posted @ 2023-10-20 16:48  Java365  阅读(457)  评论(0编辑  收藏  举报