【发布时间】:2018-01-20 03:04:23
【问题描述】:
当我尝试通过 web 应用访问 postgres 或使用 psql -d template1 打开 postgres shell 时,我收到错误消息。
psql: 无法连接到服务器: 没有这样的文件或目录是 服务器在本地运行并接受 Unix 域上的连接 套接字“/tmp/.s.PGSQL.5432”?
(*我已经阅读了许多关于此错误的 SO 主题,但推荐的解决方案并没有为我解决此问题)
将 postgres 作为服务启动:
brew services restart postgresql
停止
postgresql...(可能需要一段时间) ==> 成功停止postgresql(标签:homebrew.mxcl.postgresql) ==> 成功启动postgresql(标签:homebrew.mxcl.postgresql)
在终端中手动运行 postgres:
我可以通过在终端窗口中运行来让一切正常工作,但我更愿意在后台运行它。
postgres -D /usr/local/var/postgres9.6.3
集群:
我在/usr/local/var 中有 3 个数据库集群,但我想使用postgres9.6.3/
postgres
postgres9.5/
postgres9.6.3/
其中:
which psql 返回/usr/local/bin/psql
路径:
echo $PATH 返回 /usr/local/bin 和 /usr/local/var(添加)
其他推荐的解决方案:
很多人可以通过删除 /postgres/postmaster.pid 来解决此问题,但我不存在此文件。
更新
运行ps -ef | grep postgres,仅输出,
501 2135 1530 0 12:08pm ttys002 0:00.00 grep postgres
用brew servies重启postgres后,/usr/local/var/log中的postgres.log包含,
FATAL: database files are incompatible with server
DETAIL: The data directory was initialized by PostgreSQL version 9.5, which is not compatible with this version 9.6.3.
【问题讨论】:
-
通过
brew services重启服务后,ps -ef | grep postgres的输出有什么显示吗?如果没有,服务器实际上并没有运行——考虑到错误,这似乎很可能。检查日志(应该在 /usr/local/var/log/postgres.log 中),看看里面是否有什么有趣的东西。 -
添加了问题的更新
标签: macos postgresql psql