CentOS 7.9 部署 PostgreSQL 15.17 + PostGIS 3.4.8 操作文档
适用系统:CentOS 7.9 x86_64
数据库版本:PostgreSQL 15.17(二进制官方版)
空间插件:PostGIS 3.4.8(稳定兼容版)
适用场景:政务内网、生产环境、离线部署
运行用户:postgres(独立权限,安全规范)
目录
1.环境初始化(root 执行)
2.PostgreSQL 15.17 二进制安装
3.PostGIS 3.4.8 编译安装
4.扩展启用与安装验证
5.数据库常用运维命令
6.常见问题解决方案
7.部署规范说明
一、环境初始化(root 用户执行)
1.1 关闭防火墙与 SELinux(政务标准配置)
运行
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭SELinux
setenforce 0sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
1.2 安装系统基础依赖
运行
yum install -y wget gcc gcc-c++ make cmake libtool libxml2-devel zlib-devel readline-devel
1.3 创建专用用户与数据目录
运行
创建postgres用户useradd -m postgrespasswd postgres
创建安装/数据/日志目录mkdir -p /usr/local/pg15
mkdir -p /data/pg15_data
mkdir -p /data/pg15_log
授权权限(必须执行)chown -R postgres:postgres /usr/local/pg15chown -R postgres:postgres /data/pg15_datachmod 700 /data/pg15_data
二、PostgreSQL 15.17 二进制安装
2.1 下载官方二进制包
运行
cd /tmpwget https://get.enterprisedb.com/postgresql/postgresql-15.17-1-linux-x64-binaries.tar.gz
离线环境:手动下载安装包上传至 /tmp 目录
2.2 解压安装
运行
tar -zxvf postgresql-15.17-1-linux-x64-binaries.tar.gzcp -rf pgsql/* /usr/local/pg15/
2.3 配置环境变量
1.切换用户:su - postgres
2.编辑文件:vim ~/.bash_profile
3.写入配置:
运行
export PGHOME=/usr/local/pg15
export PGDATA=/data/pg15_data
export PATH=PGHOME/bin:PGHOME/bin:PGHOME/bin:PATH
export LD_LIBRARY_PATH=PGHOME/lib:PGHOME/lib:PGHOME/lib:LD_LIBRARY_PATH
1.生效并验证:
运行
source ~/.bash_profile
psql --version
2.4 初始化数据库
运行
initdb -D /data/pg15_data -E UTF8 --locale=en_US.UTF-8
2.5 配置远程连接
2.5.1 修改主配置
运行
vim /data/pg15_data/postgresql.conf
修改参数:
ini
listen_addresses = '*'
port = 5432
max_connections = 1000
log_destination = 'csvlog'
logging_collector = on
log_directory = '/data/pg15_log'
2.5.2 修改权限配置
运行
vim /data/pg15_data/pg_hba.conf
末尾添加:
ini
host all all 0.0.0.0/0 scram-sha-256
2.6 配置系统服务(开机自启)
切换 root:exit
创建服务文件:vim /usr/lib/systemd/system/postgresql-15.service
写入内容:
ini
Unit\]Description=PostgreSQL 15.17 Database ServerAfter=network.target \[Service\]User=postgresGroup=postgresExecStart=/usr/local/pg15/bin/pg_ctl start -D /data/pg15_data -l /data/pg15_log/pg.logExecStop=/usr/local/pg15/bin/pg_ctl stop -D /data/pg15_dataExecReload=/usr/local/pg15/bin/pg_ctl reload -D /data/pg15_dataRestart=always \[Install\]Wanted=multi-user.target 1.加载并启动服务: 运行 systemctl daemon-reload systemctl enable postgresql-15 systemctl start postgresql-15 systemctl status postgresql-15 2.7 设置管理员密码 运行 su - postgres psql ALTER USER postgres ENCRYPTED PASSWORD 'postgres@123'; \\q 三、PostGIS 3.4.8 安装 3.1 安装底层依赖 运行 exit yum install -y geos-devel proj-devel gdal-devel json-c-devel libtiff-devel libpng-devel 3.2 下载并解压源码 运行 cd /tmpwget https://download.osgeo.org/postgis/source/postgis-3.4.8.tar.gztar -zxvf postgis-3.4.8.tar.gzcd postgis-3.4.8 3.3 编译安装(核心步骤) 运行 ./configure --prefix=/usr/local/pg15 --with-pgconfig=/usr/local/pg15/bin/pg_configmake -j4make install 3.4 刷新系统库 运行 echo "/usr/local/pg15/lib" \> /etc/ld.so.conf.d/postgres15.conf ldconfig 四、启用扩展与安装验证 4.1 登录数据库启用扩展 运行 su - postgres psql 执行 SQL: sql -- 必装核心扩展CREATE EXTENSION postgis;-- 可选拓扑扩展CREATE EXTENSION postgis_topology; -- 验证版本SELECT postgis_version();SELECT version(); 4.2 验证成功标准 1.执行 \\dx 可看到 postgis 扩展 2.输出版本:PostgreSQL 15.17 + PostGIS 3.4.8 五、常用运维命令 运行 ## 启动 systemctl start postgresql-15# 停止 systemctl stop postgresql-15# 重启 systemctl restart postgresql-15# 状态 systemctl status postgresql-15# 开机自启 systemctl enable postgresql-15 六、常见问题解决方案 pg_config 未找到检查路径:/usr/local/pg15/bin/pg_config --version PostGIS 共享库加载失败执行命令:ldconfig 远程无法连接确认防火墙 / SELinux 已关闭,权限配置正确 编译失败重装依赖:yum reinstall -y geos-devel proj-devel gdal-devel 七、部署规范说明 权限规范:仅 postgres 用户运行数据库,禁止 root 运行 版本规范:PG15.17 + PostGIS3.4.8 官方稳定兼容组合 环境规范:支持离线 / 政务内网 / 生产环境部署 安全规范:强密码、独立目录、权限最小化