使用 pgenv 或 pg_ctl 启动服务后,PostgreSQL 客户端 (psql) 无法连接

使用 pgenv 或 pg_ctl 启动服务后,PostgreSQL 客户端 (psql) 无法连接

我能够使用 pgenv 和 pg_ctl 启动服务,但无法使用 psql 连接。显示以下错误:

$ psql -l
psql: error: connection to server on socket "/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
Is the server running locally and accepting connections on that socket?

我检查了所提到的套接字的路径,但是它并不像 psql 报告的那样存在。

如果我使用pg_ctl 状态,返回以下内容:

$ pg_ctl: server is running (PID: 2127388)
/home/postgres/Repositories/github.com/theory/pgenv/pgsql-15.2/bin/postgres

我检查了 server.log 文件,它说正在监听不同的套接字。请参见以下内容:

$ file /tmp/.s.PGSQL.5432
/tmp/.s.PGSQL.5432: socket

我该如何解决这个问题?

答案1

我找到解决方案了!

要做的就是创建目录 /run/postgresql 并为该目录分配正确的权限。所有权必须属于执行 postgresql 的系统用户帐户(例如 postgres)。

相关内容