📌  相关文章
📜  psql:错误:无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受 Unix 域套接字“var run postgresql .s.PGSQL.5432”上的连接? - Javascript(1)

📅  最后修改于: 2023-12-03 14:45:41.107000             🧑  作者: Mango

psql: 错误: 无法连接到服务器: 没有这样的文件或目录服务器是否在本地运行并接受 Unix 域套接字/var/run/postgresql/.s.PGSQL.5432上的连接? - Javascript

这个错误通常是因为PostgreSQL服务器没有正确启动所致。使用Unix域套接字连接时,服务器必须正确设置并在运行状态。在JavaScript中,可以通过以下步骤来检查并确保PostgreSQL服务器已正确启动:

  1. 检查PostgreSQL服务器是否正在运行

可以使用以下命令检查PostgreSQL服务器是否正在运行:

sudo service postgresql status

如果PostgreSQL服务器正在运行,您将看到类似以下内容的输出:

● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; disabled; vendor preset: enabled)
     Active: active (exited) since Fri 2019-07-19 19:09:20 UTC; 10s ago
    Process: 28129 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 28129 (code=exited, status=0/SUCCESS)

如果PostgreSQL服务器没有正确启动,您需要使用以下命令启动它:

sudo service postgresql start
  1. 检查PostgreSQL服务器是否正确配置

您还需要确保PostgreSQL服务器已正确配置以接受Unix域套接字连接。要检查是否正确设置,请打开/etc/postgresql/{version}/main/postgresql.conf文件,并确保以下行未被注释掉:

unix_socket_directories = '/var/run/postgresql'

该行配置了Unix域套接字服务器的位置,确保已取消注释。

  1. 检查PostgreSQL服务器是否已启用Unix域套接字连接

您需要确认PostgreSQL服务器已启用接受Unix域套接字连接。要检查这一点,请打开/etc/postgresql/{version}/main/pg_hba.conf文件并确保以下行已经存在:

local   all             postgres                                peer

该行配置了PostgreSQL服务器接受任何本地连接的方式。

如果以上步骤已经执行,但是错误仍然存在,可能是因为PostgreSQL服务器正在运行但是在不正确的位置上使用Unix域套接字。通常情况下,/var/run/postgresql/是正确的位置,但是如果您的系统已经被调整或者安装了PostgreSQL服务器的特殊版本,则位置可能不同。

最好的方法是检查您的系统文档或PostgreSQL服务器文档,以确保您的服务器正确配置并在正确的位置上使用Unix域套接字。

以上就是解决“psql:错误:无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字/var/run/postgresql/.s.PGSQL.5432上的连接?”的一些常见解决办法。