1、环境准备
centos7.9虚拟机一台
2、软件准备
postgresql-16.0.tar.gz
https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz
3、依赖安装
yum install -y systemd-devel readline readline-devel zlib-devel gcc
4、创建数据库用户
useradd postgres
# 设置用户密码,自己根据实际替换
echo "123456" | passwd --stdin postgres
5、编译安装
# 安装目录
mkdir -p /data/server/pgsql
# 数据目录
mkdir -p /data/server/pgsql/data
# 解压编译安装
tar -zxvf postgresql-16.0.tar.gz
cd postgresql-16.0
./configure --prefix=/data/server/gpsql --without-icu --with-systemd
make && make install
# 修改目录属主、属组
chown -R postgres:postgres /data/server/pgsql
# 切换用户
su - postgres
/data/server/pgsql/bin/initdb -D /data/server/pgsql/data # 初始化
6、设置成系统服务
vim /usr/lib/systemd/system/postgresql.service
# 文件内容
[Unit]
Description=PostgreSQL 16.0 database server
Documentation=man:postgres(1)
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
User=postgres
Group=postgres
OOMScoreAdjust=-1000
ExecStart=/data/server/pgsql/bin/pg_ctl start -D /data/server/pgsql/data
ExecStop=/data/server/pgsql/bin/pg_ctl stop -D /data/server/pgsql/data
ExecReload=/data/server/pgsql/bin/pg_ctl reload -D /data/server/pgsql/data
TimeoutSec=0
[Install]
WanteBy=multi-user.target
7、启动服务
systemctl daemon-reload
systemctl enable postgresql
systemctl start postgresql
8、连接数据库
# 切换用户
su - postgres
/data/server/pgsql/bin/psql
# 创建用户以及密码
create user admin password "12345';
# 创建制定拥有者的数据库
create database tt owner admin;
9、配置pgsql的配置文件
# 修改监听地址,否则无法远程连接
listen_addresses = '*'
port = 5432
# 修改最大连接数
max_connections = 1024
# 设置socket目录
unix_socket_directories = '/data/server/pgsql'
# 开启日志获取
logging_collector = on
# 设置日志目录
log_directory = 'pg_log'
# 设置日志文件名称格式
log_filename = 'postgresql-%Y-%m-%d.log'
# 开启日志轮转
log_truncate_on_rotation = on
# pg_hba.conf 调整远程连接的Ip地址
host tt admin xx.xx.xx.xx/24 md5
重启服务即可