You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加pgaudit至shared_preload_libraries后PostgreSQL数据库无法启动求助

PostgreSQL重启后pgaudit加载失败问题排查

问题现象

安装pgaudit并将其添加至postgresql.conf配置文件后,重启PostgreSQL触发如下致命错误:

2024-01-22 10:00:21.293 PST [3212773] FATAL: 58P01: could not access file "pgaudit": No such file or directory
2024-01-22 10:00:21.293 PST [3212773] LOCATION: internal_load_library, dfmgr.c:210

环境信息

  • pgaudit安装状态:
    yum list pgaudit
    Last metadata expiration check: 0:29:17 ago on Mon 22 Jan 2024 09:50:21 AM PST.
    Installed Packages
    pgaudit.x86_64                                                                 1.7.0-1.module+el8.9.0+90110+d8a562d5       
    
    rpm -qa | grep pgaudit
    pgaudit-1.7.0-1.module+el8.9.0+90110+d8a562d5.x86_64
    
  • 操作系统:Oracle Linux Server 8.6
  • 内核:Linux 5.4.17-2136.310.7.el8uek.x86_64
  • 架构:x86-64
  • PostgreSQL版本:psql (15.3)

排查方向与解决步骤

1. 版本兼容性验证

pgaudit 1.7.0官方仅支持PostgreSQL 10~14版本,而你使用的是PG15.3,版本不匹配会导致库文件无法被识别。需安装适配PG15的pgaudit版本(1.8.0及以上)。

2. 检查插件文件路径

  • 执行pg_config --pkglibdir获取PostgreSQL的插件目录(通常为/usr/pgsql-15/lib)
  • 查看该目录下是否存在pgaudit.so文件:ls -l $(pg_config --pkglibdir)/pgaudit.so
  • 若文件不存在,说明安装的pgaudit包未将库文件部署到PG15的插件目录,需重新安装对应版本的pgaudit包。

3. 确认配置正确性

  • 检查postgresql.conf中shared_preload_libraries配置是否正确添加了pgaudit(注意无.so后缀)
  • 重启前可执行postgres -C shared_preload_libraries验证配置是否生效。

4. 权限检查

  • 确认PostgreSQL运行用户(通常为postgres)对pgaudit.so文件拥有读取权限
  • 若权限不足,执行chmod 755 $(pg_config --pkglibdir)/pgaudit.so调整权限。

内容的提问来源于stack exchange,提问作者Dave B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 23:20:16