postgres服务器无法启动,不生成日志,如何排除故障?


33

我正在ubuntu 12.04服务器上启动一个postgres 9.3实例:

~# service postgresql start 

 * The PostgreSQL server failed to start. Please check the log output.
                                                                     [fail]

启动失败,但没有留下日志,此文件为空:

tail /var/log/postgresql/postgresql-9.3-main.log 

并且该目录中没有其他文件:/ var / log / postgresql /

解决此问题的最佳方法是什么?


这是新的pg安装还是您只是进行了升级?检查postgres用户是否有权使用pg配置文件和日志文件
LinuxDevOps

3
尝试运行Postgres的方式相同的脚本执行(通常su - postgres; /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data,看看它给你,你可能需要更改用户名和路径根据您的设置。
珍妮d说恢复莫妮卡

除了什么@JennyD说,我想补充-d 3postgres命令。这将使更广泛的调试输出写入日志。您可以通过将调试输出更改为1或2来降低调试输出,或通过将其更改为4或5来增加调试输出。此外,的输出是which pgsql什么?
zymhan 2014年

PostgreSQL是如何安装在服务器上的以及从何处安装的?系统日志中是否有任何内容,例如/ var / log / syslog,/ var / log / messages等?
克雷格·林格2014年

6
我不明白为什么这个问题被关闭了。
guettli 2015年

Answers:


53

尝试在启用调试的情况下手动运行它。这将导致它在前台运行,并将所有错误消息打印为标准错误,同时还增加了详细程度。

我相信这将是Ubuntu上PostgreSQL 9.3的正确命令行,但可能需要进行一些非常细微的调整(注意:为了便于阅读,该行被拆分;如果需要,可以将其重新组合为一行(不带反斜杠)):

/usr/lib/postgresql/9.3/bin/postgres -d 3 -D /var/lib/postgresql/9.3/main \
   -c config_file=/etc/postgresql/9.3/main/postgresql.conf

开头是postgres二进制文件的位置,然后启用调试并将其设置为3级(您可以向上或向下调整此级别以增加或减少详细程度)。接下来,我们指定数据目录和开始的配置文件。我认为,这些应该是Ubuntu Server 12.04的默认设置。

希望它将为您提供足够的信息来确定问题出在哪里。


1
手动启动它对我有用,但使用服务仍然无效。我更改了默认数据目录,是否需要更新一些内容以使service命令再次起作用以启动postgres?
chrismarx 2014年

1
@chrismarx-该service命令只是/etc/init.d/实际启动和停止该过程的脚本的便捷包装。您需要查看该脚本,以了解它与手动运行时有何不同。做类似的事情bash -x /etc/init.d/postgresql start可能是开始研究的好地方。
Christopher Cashell14年

3
谢谢,我得到了这种排序,数据目录存在权限问题,而且似乎服务也必须使用sudo运行
chrismarx 2014年

1
救生员。我找不到其他方法来说明为什么PostgreSQL无法启动,因为那是因为权限问题而导致它无法访问其数据目录。
Aron Lorincz

1
对我来说,这是配置/ etc / postgresql /的许可
eugene '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.