在 CentOS 上开启 PostgreSQL 日志,通常需要修改 postgresql.conf 配置文件,并根据不同版本略有差异。下面以常见版本(如 PostgreSQL 12/13/14/15)为例说明。
通常位置如下(以版本 14 为例):
/var/lib/pgsql/14/data/postgresql.conf
也可通过 SQL 查看:
SHOW config_file;
编辑配置文件:
sudo vi /var/lib/pgsql/14/data/postgresql.conf
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d.log'
log_rotation_age = 1d
log_rotation_size = 100MB
log_statement = 'all' # 记录所有 SQL(调试用)
log_min_duration_statement = 0 # 记录所有执行语句(或设为 1000 表示 >1s)
log_connections = on
log_disconnections = on
log_line_prefix = '%m %p %u %d %a '
sudo systemctl restart postgresql-14
或通用方式:
sudo systemctl restart postgresql
日志默认位置:
/var/lib/pgsql/14/data/log/
查看示例:
tail -f /var/lib/pgsql/14/data/log/postgresql-*.log
如果日志无法写入,检查 SELinux:
getenforce
临时关闭(不推荐生产):
setenforce 0
或正确配置 SELinux 权限(推荐)。
log_min_duration_statement = 1000
log_statement = 'all'
如果你告诉我 PostgreSQL 版本 和 CentOS 版本(如 CentOS 7 / Stream 9),我可以给你更精确的路径和命令。