在操作过程中,因为偷懒使用了root用户。实际生产环境下切记使用该账号,反正次生灾害。普通用户执行的过程中加入sudo执行。

一、依赖项目

1
sudo yum install -y gcc gcc-c++ make zlib-devel openssl-devel readline-devel libxml2-devel pam-devel bison flex

二、下载PostgreSQL源代码

1
2
3
4
5
(1) curl -O https://ftp.postgresql.org/pub/source/v16.2/postgresql-16.2.tar.bz2

(2) wget https://ftp.postgresql.org/pub/source/v16.2/postgresql-16.2.tar.bz2
tar -xvjf postgresql-16.2.tar.bz2
cd postgresql-16.2

三、配置编译选项:

1
2
3
./configure --prefix=/usr/local/pgsql
make
make install

创建用户和用户组

1
2
3
4
groupadd postgres
useradd -g postgres postgres
mkdir /usr/local/pgsql/data
chown postgres:postgres /usr/local/pgsql/data

初始化数据库

1
2
3
4
sudo -i -u postgres
(su -i -u postgres)

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

启动PostgreSQL服务

1
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

配置环境变量

1
export PATH=$PATH:/usr/local/pgsql/bin

验证安装

1
psql -V

Navicat客户端PostgreSQL连接报错:Could not connect to server:Connection refused(0x00002740/10061)

在当前ip下使用navicat 连接PGSQL的时候被拒绝了,开放的ip需要在pg_hba.conf文件中配置。文件中大概行数为82。填写完后保存。(ip/32 这个地方32是标识固定的ip 也有ip/24 标识ip的前面3位匹配都可以)同级目录下的postgresql.conf中59行左右,将listen_address修改为监听“*”,保存后重启pgsql。

1
2
postgres 用户下执行
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile restart

【注意:在本文中的pgsql是安装在postgres用户下的】对于可以使用外网的环境下,建议使用宝塔,一劳永逸,可视化操作。

csdn