启动PostgreSQL 14服务失败:postmaster执行环节出错求助
PostgreSQL 14服务启动失败排查方案
错误状态信息
[root@server ~]# systemctl status postgresql-14.service ● postgresql-14.service - PostgreSQL 14 database server Loaded: loaded (/usr/lib/systemd/system/postgresql-14.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/postgresql-14.service.d └─override.conf Active: failed (Result: exit-code) since Tue 2022-07-12 03:58:25 UTC; 4min 8s ago Docs: https://www.postgresql.org/docs/14/static/ Process: 4707 ExecStart=/usr/pgsql-14/bin/postmaster -D ${PGDATA} (code=exited, status=1/FAILURE) Process: 4702 ExecStartPre=/usr/pgsql-14/bin/postgresql-14-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 4707 (code=exited, status=1/FAILURE) Jul 12 03:58:25 server systemd[1]: Starting PostgreSQL 14 database server... Jul 12 03:58:25 server systemd[1]: postgresql-14.service: Main process exited, code=exited, status=1/FAILURE Jul 12 03:58:25 server systemd[1]: postgresql-14.service: Failed with result 'exit-code'. Jul 12 03:58:25 server systemd[1]: Failed to start PostgreSQL 14 database server.
排查步骤
查看PostgreSQL日志文件
PostgreSQL启动失败的具体原因会记录在日志中,默认日志路径为/var/lib/pgsql/14/data/log/,查看最新日志:tail -n 50 /var/lib/pgsql/14/data/log/postgresql-*.log检查数据目录权限
确保${PGDATA}目录(默认/var/lib/pgsql/14/data/)的属主和属组为postgres,权限为700:ls -ld /var/lib/pgsql/14/data/ # 正确输出示例:drwx------ 19 postgres postgres 4096 Jul 12 03:50 /var/lib/pgsql/14/data/ # 权限异常时执行修复: chown -R postgres:postgres /var/lib/pgsql/14/data/ chmod 0700 /var/lib/pgsql/14/data/验证配置文件语法
检查postgresql.conf和pg_hba.conf是否存在语法错误:su - postgres -c "/usr/pgsql-14/bin/pg_ctl -D /var/lib/pgsql/14/data/ check"检查端口占用情况
确认PostgreSQL默认端口5432是否被其他进程占用:netstat -tulpn | grep 5432 # 若端口被占用,可停止对应进程或修改postgresql.conf中的port参数手动启动postmaster获取实时错误
切换到postgres用户手动启动服务,直接查看错误输出:su - postgres /usr/pgsql-14/bin/postmaster -D /var/lib/pgsql/14/data/
内容的提问来源于stack exchange,提问作者Patel Garv
相关产品推荐
相关产品推荐

