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

CentOS添加文件到systemd目录后PostgreSQL 14无法启动求助

PostgreSQL 14服务启动失败排查(CentOS系统)

问题场景

在CentOS系统的systemd目录添加文件后,postgresql-14.service无法启动,报错信息如下:

Job for postgresql-14.service failed because the control process exited with error code. 请查看"systemctl status postgresql-14.service"和"journalctl -xe"获取详细信息。

相关日志输出

systemctl status 输出

Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: 正在启动PostgreSQL 14数据库服务器...
Feb 08 20:47:38 82-166-106-208.barak-online.net postmaster[2525]: 2023-02-08 20:47:38.805 IST [2525] LOG: 将日志输出重定向到日志收集进程
Feb 08 20:47:38 82-166-106-208.barak-online.net postmaster[2525]: 2023-02-08 20:47:38.805 IST [2525] HINT: 后续日志输出将出现在"log"目录中。
Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: postgresql-14.service: 主进程已退出,code=exited,status=1/FAILURE
Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: 启动PostgreSQL 14数据库服务器失败。
Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: 单元postgresql-14.service进入失败状态。
Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: postgresql-14.service启动失败。

journalctl -xe 输出

-- 单元postgresql-14.service已开始启动。
Feb 08 20:47:38 82-166-106-208.barak-online.net postmaster[2525]: 2023-02-08 20:47:38.805 IST [2525] LOG: 将日志输出重定向到日志收集进程
Feb 08 20:47:38 82-166-106-208.barak-online.net postmaster[2525]: 2023-02-08 20:47:38.805 IST [2525] HINT: 后续日志输出将出现在"log"目录中。
Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: postgresql-14.service: 主进程已退出,code=exited,status=1/FAILURE
Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: 启动PostgreSQL 14数据库服务器失败。
-- 主题:单元postgresql-14.service启动失败
-- 定义者:systemd
-- 支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- 单元postgresql-14.service启动失败。
--
-- 结果为失败。
Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: 单元postgresql-14.service进入失败状态。
Feb 08 20:47:38 82-166-106-208.barak-online.net systemd[1]: postgresql-14.service启动失败。
Feb 08 20:47:38 82-166-106-208.barak-online.net polkitd[774]: 注销unix-process:2512:147782的认证代理(系统总线名称:1.40,对象路径/org/freedesktop/PolicyKit1/AuthenticationAgent,区域设置en_IN
lines 2104-2163/2163 (END)

排查与修复步骤

  • 查看PostgreSQL详细日志
    根据日志提示,PostgreSQL的具体启动日志会输出到它的log目录,默认路径为/var/lib/pgsql/14/log/,查看最新日志文件,定位核心报错(如配置语法错误、数据目录权限问题、端口占用等)。

  • 校验systemd配置变更

    1. 检查在systemd目录(通常为/etc/systemd/system/或/usr/lib/systemd/system/)添加的文件,确认是否修改了postgresql-14.service的依赖、执行路径或权限规则。
    2. 执行systemctl daemon-reload重新加载systemd配置,再尝试启动服务:systemctl start postgresql-14.service。
    3. 若添加了自定义service文件或drop-in配置,用systemd-analyze verify postgresql-14.service验证语法正确性。
  • 修复文件权限问题

    1. 确认PostgreSQL数据目录(默认/var/lib/pgsql/14/data/)及日志目录的所有者为postgres用户:
      chown -R postgres:postgres /var/lib/pgsql/14/
      
    2. 检查systemd服务文件权限,确保为644:
      chmod 644 /usr/lib/systemd/system/postgresql-14.service
      
  • 检查端口与进程冲突
    查看5432端口是否被占用:

    ss -tulpn | grep 5432
    

    若有冲突,停止占用进程或修改PostgreSQL配置文件postgresql.conf中的port参数。

  • 手动启动测试
    切换到postgres用户手动启动,直接获取报错信息:

    su - postgres
    /usr/pgsql-14/bin/postmaster -D /var/lib/pgsql/14/data/
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 03:01:00