一、环境准备
-
系统要求
- 推荐使用Rocky Linux 9.4及以上版本(支持PostgreSQL 16+)
- 确保已安装
dnf
包管理工具和wget
- 建议关闭SELinux(临时测试):
setenforce 0
-
添加官方仓库
lessbash sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo dnf -qy module disable postgresql # 禁用系统默认模块[1](@ref)
二、安装PostgreSQL
-
选择版本安装
版本 安装命令 数据目录 15.x sudo dnf install postgresql15-server postgresql15-contrib
/var/lib/pgsql/15/data
16.x sudo dnf install postgresql16-server postgresql16-contrib
/var/lib/pgsql/16/data
-
初始化数据库
lessbash sudo /usr/pgsql-16/bin/postgresql-16-setup initdb # 根据实际版本调整[1](@ref)
三、服务配置
-
启动服务
bashbash sudo systemctl enable --now postgresql-16 sudo systemctl status postgresql-16 # 验证运行状态
-
关键配置修改
-
postgresql.conf
inibash listen_addresses = '*' # 允许所有IP访问 port = 5432 # 默认端口 shared_buffers = 4GB # 内存优化(根据服务器配置调整) max_connections = 200 # 最大连接数
-
pg_hba.conf
pythonbash # 允许本地连接 local all all trust # 允许远程连接(需配合防火墙) host all all 0.0.0.0/0 scram-sha-256
-
四、安全加固
-
设置密码
sqlbash sudo -u postgres psql ALTER USER postgres WITH PASSWORD 'YourSecurePassword123!';
-
防火墙配置
cssbash sudo firewall-cmd --permanent --add-port=5432/tcp sudo firewall-cmd --reload
五、高级操作
-
创建数据库与用户
sqlsql CREATE DATABASE mydb; CREATE USER myuser WITH PASSWORD 'UserPass456!'; GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
-
备份与恢复
-
全量备份
luabash pg_dump -U postgres -Fc mydb > mydb.dump
-
恢复数据库
luabash pg_restore -d mydb mydb.dump
-
六、扩展方案(可选)
-
编译安装PostgreSQL 17
bashbash sudo dnf install meson ninja-build openssl-devel git clone https://github.com/postgresql/postgresql.git meson setup build --prefix=/opt/pgsql17 -Dssl=openssl ninja -C build sudo ninja -C build install
-
PostGIS扩展
lessbash sudo dnf install postgis32_16 # 安装地理空间扩展[2](@ref) psql -c "CREATE EXTENSION postgis;" mygisdb
常见问题排查
-
GPG签名错误:重新导入仓库密钥
arduinobash sudo rpm --import https://www.postgresql.org/media/keys/ACCC4CF8.asc
-
端口冲突 :检查
systemctl status postgresql-16
服务状态 -
权限问题:确保数据目录权限正确
bashbash sudo chmod 700 -R /var/lib/pgsql/16/data
通过本文指南,您可以在Rocky Linux系统上快速部署安全可靠的PostgreSQL数据库环境。建议生产环境使用PostgreSQL 16 版本,并定期通过dnf update
进行安全更新
。如需最新特性,可参考PostgreSQL官方文档进行编译安装。