无法访问Postgres,收到有关“/var/run/postgresql/.s.PGSQL.5432”的错误消息?

时间:2017-11-16 10:39:29

标签: postgresql

我正在使用postgres作为后端数据库运行django应用程序。它工作正常。突然之间,今天我看到我的数据库连接在生产服务器中拒绝了。所以我登录了我的服务器并试图

psql

然后显示此错误:

 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"?

上面列出的文件似乎不存在。

我检查了我的postgres是否正在运行:

 /etc/init.d/postgresql status

它正在返回SUCCESS消息。

postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Thu 2017-11-16 10:03:41 UTC; 55min ago
  Process: 4701 ExecReload=/bin/true (code=exited, status=0/SUCCESS)
  Process: 4899 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 4899 (code=exited, status=0/SUCCESS)

Nov 16 10:03:41 median systemd[1]: Starting PostgreSQL RDBMS...
Nov 16 10:03:41 median systemd[1]: Started PostgreSQL RDBMS.

然而,我停下来又重新开始了postgres。

我检查了是否还有其他postgres与

一起运行
ps -ef | grep postgres

它又回来了,

root      5210  5117  0 10:21 pts/0    00:00:00 grep --color=auto postgres

所以没有其他的帖子。

我甚至检查过我的postgres是否意外删除了

dpkg -l | grep postgres

然后它返回

ii  postgresql                           9.5+173ubuntu0.1                             all          object-relational SQL database (supported version)
ii  postgresql-9.5                       9.5.10-0ubuntu0.16.04                        amd64        object-relational SQL database, version 9.5 server
ii  postgresql-client-9.5                9.5.10-0ubuntu0.16.04                        amd64        front-end programs for PostgreSQL 9.5
ii  postgresql-client-common             173ubuntu0.1                                 all          manager for multiple PostgreSQL client versions
ii  postgresql-common                    173ubuntu0.1                                 all          PostgreSQL database-cluster manager
ii  postgresql-contrib-9.5               9.5.10-0ubuntu0.16.04                        amd64        additional facilities for PostgreSQL

因此没有rc而不是ii,这意味着它尚未卸载。

我已尝试过互联网上的所有其他解决方案,但卸载了postgres。没有为我工作。我可能会做一些非常愚蠢的事情。我不想卸载和丢失我的数据。任何帮助都会非常明显吗?

1 个答案:

答案 0 :(得分:0)

运行以下命令以检查PostgreSQL服务器实际运行的端口:

[root@server ~]# netstat -a | grep .s.PGSQL
unix  2      [ ACC ]     STREAM     LISTENING     2534417 /var/run/postgresql/.s.PGSQL.5432

我可以从此输出中看到我的服务器正在侦听端口5432,并且该文件是在/var/run/postgresql/.s.PGSQL.5432中创建的

然后,您可以更新/etc/init.d/postgresql以包含行

PGPORT=5432
export PGPORT

并更新位于数据目录中的postgresql.conf文件,并将端口键/值设置为port=5432

然后重新启动PostgreSQL服务器

[root@server] service postgresql restart