在 CentOS 上调整 PostgreSQL 参数,通常分为修改配置文件、重新加载或重启服务、验证参数几个步骤。下面按常见场景说明。
psql --version
systemctl status postgresql
常见数据目录:
/var/lib/pgsql/12/data/var/lib/pgsql/13/data/var/lib/pgsql/dataPostgreSQL 主要参数在:
postgresql.conf
例如:
vi /var/lib/pgsql/12/data/postgresql.conf
常见参数示例:
max_connections = 200
shared_buffers = 2GB
work_mem = 64MB
effective_cache_size = 6GB
vi /var/lib/pgsql/12/data/pg_hba.conf
示例(允许远程连接):
host all all 0.0.0.0/0 md5
systemctl reload postgresql
或
su - postgres
psql -c "SELECT pg_reload_conf();"
⚠️ 有些参数(如
shared_buffers)必须重启
systemctl restart postgresql
su - postgres
psql
查看参数:
SHOW max_connections;
SHOW shared_buffers;
或:
SELECT name, setting FROM pg_settings WHERE name='work_mem';
| 参数 | 说明 |
|---|---|
max_connections |
最大连接数 |
shared_buffers |
共享内存(通常 25% 内存) |
work_mem |
每个操作排序/哈希内存 |
maintenance_work_mem |
维护操作内存 |
effective_cache_size |
查询优化器参考 |
wal_buffers |
WAL 缓冲 |
SELinux
getenforce
若为 Enforcing,修改目录权限要注意
防火墙
firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload
权限问题
配置文件必须属于 postgres 用户
如果你能告诉我:
我可以给你更精确的配置示例。