ExecStart=/usr/pgsql-9.4/bin/pg_ctl start -D ${PGDATA} -s -w -t 300 (code=exited, status=1/FAILURE)
更改后出现此错误
/var/lib/pgsql/9.4/data/postgresql.conf or pg_hba.conf
即使我返回原始的 conf 文件,错误仍然存在。
问题:1) 这个错误是什么意思?2) 我该如何解决它?
我尝试了论坛中描述的所有方法,但没有任何效果
完整错误:
systemctl status postgresql-9.4.service -l
postgresql-9.4.service - PostgreSQL 9.4 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-9.4.service; enabled)
Active: failed (Result: exit-code) since Mon 2014-12-22 11:53:14 EST; 6s ago
Process: 1934 ExecStart=/usr/pgsql-9.4/bin/pg_ctl start -D ${PGDATA} -s -w -t 300 (code=exited, status=1/FAILURE)
Process: 1929 ExecStartPre=/usr/pgsql-9.4/bin/postgresql94-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
答案1
我在从 9.3 升级到 9.4 时遇到了这个问题 - 我选择删除旧的 9.3 主集群,但当时没有创建新集群。这导致主 postgres 进程无法启动。
Postgres 发行说明说转储/恢复是必要的,因此根据您的系统,您应该运行pg_upgradecluster
或类似操作,或者只是创建一个新的集群pg_createcluster
(这些命令适用于 debian 系统 - 您没有指定您的操作系统)。
答案2
更改 pg_hba.conf 后,我遇到了同样的错误。幸运的是,答案在 /var/lib/pgsql/9.4/data/pg_log 目录中。
就我而言,我犯了上下文错误(我补充道):
# TYPE DATABASE USER ADDRESS METHOD
host all 127.0.0.1/32 trust
该行应该看起来像这样:
host all all 127.0.0.1/32 trust