重启后Postgresql停止工作

dav*_*gri 10 postgresql ubuntu

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)

在localhost上运行会得到相同的结果:

psql -h localhost                                                                                                                                                    ? master ? ?
psql: could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)

服务状态:

sudo service postgresql status                                                                                                                                       ? master ? ?
[sudo] password for david: 
? postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Sat 2015-10-10 15:48:54 IDT; 26min ago
  Process: 5470 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 5470 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/postgresql.service

Oct 10 15:48:54 david-X48-DS4 systemd[1]: Starting PostgreSQL RDBMS...
Oct 10 15:48:54 david-X48-DS4 systemd[1]: Started PostgreSQL RDBMS.
Oct 10 15:49:21 david-X48-DS4 systemd[1]: Started PostgreSQL RDBMS.
Oct 10 15:51:40 david-X48-DS4 systemd[1]: Started PostgreSQL RDBMS.
Oct 10 15:51:41 david-X48-DS4 systemd[1]: Started PostgreSQL RDBMS.
Run Code Online (Sandbox Code Playgroud)

跑步sudo netstat -nl | grep postgres没有结果

我正在运行xubuntu 15.04

我的下一个故障排除步骤应该是什么

Til*_*idt 5

YASP(又一个系统问题)

PostialSQL在Xenial中的系统集成有点特殊.postgresql服务单元只是一个假人,它应该通过服务依赖来触发你的实际数据库实例的启动.这就是为什么它说ExecStart=/bin/true- 单位的开始命令是/bin/true,即."什么都不做,成功".

实例具有自己命名的服务单元postgresql@<version>-<name>.您可以通过运行命令来查看它们

systemctl list-dependencies postgresql
Run Code Online (Sandbox Code Playgroud)

脚本/lib/systemd/system-generators/postgresql-generator为其启动模式设置auto为其各自start.conf文件的所有实例生成依赖关系/etc/postgresql.

至少这是应该如何工作的.但是,每隔一段时间,这些依赖关系就会停止工作.Systemd会愉快地报告,Started PostgreSQL RDBMS.但事实上,他们没有成功.

因此,您的下一个故障排除步骤应为

  • 检查您的实例是否列出list-dependencies.
  • 如果是这样,请调试systemd的依赖性处理.(祝好运.)
  • 否则请检查实例的start.conf文件.
  • 如果这些是正确的,请调试依赖项生成器.


小智 2

我有一些可能有帮助的建议。

当您尝试连接到 PostgreSQL 时,请尝试使用:sudo -u postgres psql; 不过,对于对等身份验证,您的用户可能会有所不同;因此请检查pg_hba.conf以确保;该文件位于您的$PGDATA目录中。

另一个建议是您可能需要检查启动日志和全局系统日志。前者通常是$PGDATAas pg_startup.log,后者是/var/log/syslog.