Mac 死机后导致 PostgreSQL 无法连接

问题现象

最近两个月碰到三次,莫名的 PG (PostgreSQL) 无法连接的情况,具体错误信息如下:

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

前两次,自己瞎鼓捣,后面就好了,然后也没在意。然后今天早上 Mac 死机重启后,这个问题又出现了,然后各种重装 PG, 重启系统依然无解。

解决方案

无奈之下,开始老实地去 Google, 最后找到一篇 SO 的文章,彻底解决了问题。问题的原因是 Mac 突然死机时原来的进程没有正常关闭,重启后又被启动了。当再次启动 PG 时,PID 文件就无法正常工作了,因为记录的是系统死机前的进程信息。

这些信息都在 PG 的日志文件里看到,/usr/local/var/postgres 目录里面,有一个 server.log 文件可以看到所有的日志。

在我的日志里面看到有很多行

FATAL:  lock file "postmaster.pid" already exists
HINT:  Is another postmaster (PID 403) running in data directory "/usr/local/var/postgres"?

这行日志就告诉我们 postmaster.pid 已经存在,这就是之前死机前留下的。将此文件删除,问题就可以解决了,但是删除此文件前要确保 postgres 进程不在运行,所以我还是选择将此文件重命名。

最后,PG 终于启动了。

参考

  • 1
    点赞
  • 2
    收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 3
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值