5

这里是 postgres 的新手!

我编辑了这里提到的 pg_hba.conf ,但是当我尝试重新启动 postgresql 服务时,尝试失败。以下是命令行输出,其中包含我可以收集的所有信息。

[root@arunpc modules]# service postgresql restart
Redirecting to /bin/systemctl  restart postgresql.service
Job failed. See system logs and 'systemctl status' for details.
[root@arunpc modules]# systemctl status postgresql.service
postgresql.service - PostgreSQL database server
      Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
      Active: failed since Sun, 08 Apr 2012 21:29:06 +0530; 14s ago
     Process: 12228 ExecStop=/usr/bin/pg_ctl stop -D ${PGDATA} -s -m fast (code=exited, status=0/SUCCESS)
     Process: 12677 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=1/FAILURE)
     Process: 12672 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
    Main PID: 12184 (code=exited, status=0/SUCCESS)
      CGroup: name=systemd:/system/postgresql.service
[root@arunpc modules]# tail /var/log/messages
....
Apr  8 21:29:06 arunpc systemd[1]: postgresql.service: control process exited, code=exited status=1
Apr  8 21:29:06 arunpc systemd[1]: Unit postgresql.service entered failed state.
Apr  8 21:29:06 arunpc pg_ctl[12677]: pg_ctl: could not start server
Apr  8 21:29:06 arunpc pg_ctl[12677]: Examine the log output.

FWIW,这是使用的配置文件(pg_hba.conf):

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             postgres                                ident sameuser
local   all             all                                     ident sameuser
# IPv4 local connections:
host    all             all             127.0.0.1               password
# IPv6 local connections:
host    all             all             ::1                     password

这里可能是什么错误?在我进行编辑之前它曾经工作得很好(因为这是一台开发机器,所以我没有做任何备份)。

我还想获得更详细的日志输出。/var/log/messages 文件中的日志消息确实要求我“检查日志输出” - 这是哪个日志输出?我还可以采取哪些其他故障排除步骤?

提前谢谢了!

4

1 回答 1

6

根据您的启动脚本,它可能会将 postmaster 的输出重定向到一个文件。这通常是 PGDATA 目录中的 server.log。我会尝试的事情:

  • 注释掉 pg_hba.conf 中的所有内容并重试。如果问题是该文件中的语法错误,则注释掉有问题的行将允许服务器启动,然后您将能够一次取消注释一个,直到找到错误为止。

  • 直接从 shell 启动 postmaster 而不将其发送到后台。只需运行postmaster -D <pgdata dir>,它应该会吐出一些更有帮助的日志。

于 2012-04-08T16:43:22.187 回答