'service postgresql start' 无法在 Fedora 上启动 postgres 服务
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/10064254/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
'service postgresql start' fails to start postgres service on Fedora
提问by ARV
Newcomer to postgres here!
postgres 的新手在这里!
I edited pg_hba.conf as mentioned here, but when I try to restart postgresql service, the attempt fails. Below is the command line output with all the information I could gather.
我按照此处所述编辑了 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, here is the configuration file (pg_hba.conf) used:
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
What could be the error here? It used to work fine before I made the edit (and since this was a development machine, I brilliantly didn't make any backup).
这里可能是什么错误?在我进行编辑之前,它曾经工作得很好(因为这是一台开发机器,我没有做任何备份)。
I would also like to get a more detailed log output. The log message in /var/log/messages file does ask me to "Examine the log output" - which log output would this be? What other troubleshooting steps can I take?
我还想获得更详细的日志输出。/var/log/messages 文件中的日志消息确实要求我“检查日志输出” - 这会是哪个日志输出?我还可以采取哪些其他故障排除步骤?
Many thanks in advance!
提前谢谢了!
回答by Alex Howansky
Depending on your startup script, it might redirect the postmaster's output to a file. This is usually server.log in the PGDATA directory. Things I'd try:
根据您的启动脚本,它可能会将 postmaster 的输出重定向到一个文件。这通常是 PGDATA 目录中的 server.log。我会尝试的事情:
Comment out everything in pg_hba.conf and retry. If the problem is a syntax error in that file, then commenting out the offending line will allow the server to start and then you'll be able to uncomment one at a time until you find the error.
Start postmaster directly from the shell without sending it to the background. Just run
postmaster -D <pgdata dir>
and it should spew some more helpful logs.
注释掉 pg_hba.conf 中的所有内容并重试。如果问题是该文件中的语法错误,则注释掉有问题的行将允许服务器启动,然后您可以一次取消注释,直到找到错误为止。
直接从 shell 启动 postmaster,无需将其发送到后台。只需运行
postmaster -D <pgdata dir>
,它应该会喷出一些更有帮助的日志。