我能够使用 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)。