【教程】在 CentOS Stream 9 上安装 PostgreSQL数据库
添加官方仓库并安装
禁用系统默认模块(避免旧版冲突):
sudo dnf -qy module disable postgresql
添加 PostgreSQL 官方仓库:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
安装所需版本(以 PostgreSQL 16 为例):
sudo dnf install -y postgresql16-server postgresql16-contrib
提示:替换 16 可安装其他版本(如 postgresql15-server)。
初始化数据库与启动服务
初始化数据库:
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
启动服务并设开机自启:
sudo systemctl enable --now postgresql-16
配置远程访问与防火墙
修改监听地址(postgresql.conf):
sudo vi /var/lib/pgsql/16/data/postgresql.conf
修改参数:
listen_addresses = '*' # 允许所有IP连接
port = 5432 # 默认端口

配置客户端访问权限(pg_hba.conf):
sudo vi /var/lib/pgsql/16/data/pg_hba.conf
添加行(允许所有IPv4/IPv6通过密码连接):
host all all 0.0.0.0/0 md5
host all all ::/0 md5
开放防火墙端口(或直接在云服务器安全组里放行):
sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload
重启服务生效:
sudo systemctl restart postgresql-16
注意:生产环境建议限制IP范围(如 192.168.1.0/24)。
设置用户与数据库
切换至 postgres 用户:
sudo -iu postgres
登录 PostgreSQL 控制台:
psql
创建用户并授权:
CREATE USER deploy_user WITH PASSWORD 'StrongPass!123' LOGIN CREATEDB;
CREATE DATABASE app_db OWNER deploy_user;
GRANT ALL PRIVILEGES ON DATABASE app_db TO deploy_user;
修改超级用户密码(可选):
ALTER USER postgres PASSWORD 'NewAdminPass!';
性能优化关键参数
编辑 postgresql.conf,根据服务器配置调整:
shared_buffers = 4GB # 内存的25%-40%
work_mem = 64MB # 每个查询操作内存
maintenance_work_mem = 1GB # 维护操作内存
effective_cache_size = 12GB # 系统文件缓存预估
max_connections = 200 # 最大连接数
wal_level = replica # 支持主从复制
建议:根据实际内存调整比例,避免OOM(如 shared_buffers 不宜超过内存40%)。
安全与维护
备份数据库:
pg_dump -U deploy_user -d app_db > app_db_backup.sql
恢复数据库:
psql -U deploy_user -d app_db < app_db_backup.sql
开启慢查询日志(postgresql.conf):
log_min_duration_statement = 5000 # 记录超过5秒的查询
logging_collector = on
定期更新:
sudo dnf update postgresql16-server
常见问题解决
服务启动失败:检查 /var/lib/pgsql/16/data/pg_log 日志,常见于目录权限问题(需 chmod 700 /var/lib/pgsql/16/data)。
远程连接被拒:确认防火墙、pg_hba.conf 规则及 listen_addresses 配置。
内存不足:降低 shared_buffers 或增加服务器内存。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)