资讯专栏INFORMATION COLUMN

Mac 死机后导致 PostgreSQL 无法连接

niuxiaowei111 / 1255人阅读

摘要:问题现象最近两个月碰到三次,莫名的无法连接的情况,具体错误信息如下前两次,自己瞎鼓捣,后面就好了,然后也没在意。然后今天早上死机重启后,这个问题又出现了,然后各种重装重启系统依然无解。最后,终于启动了。

问题现象

最近两个月碰到三次,莫名的 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 终于启动了。

参考

http://stackoverflow.com/questions/13573204/psql-could-not-connect-to-server-no-such-file-or-directory-mac-os-x

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38947.html

相关文章

  • Mac下安装Postgresql数据库

    摘要:前言在安装数据库之前,需要先使用命令查看之前是否安装过。例如之前安装过版本,第二次又安装了版本,会导致最后的时候数据库无法启动并报错当存在两个版本冲突时,我采用的解决方式是直接使用命令删除安装的两个版本数据库,重新安装。 前言 在安装Postgresql数据库之前,需要先使用 brew list 命令查看之前是否安装过Postgresql。例如之前安装过Postgresql 10.1版...

    hosition 评论0 收藏0
  • Mac下安装Postgresql数据库

    摘要:前言在安装数据库之前,需要先使用命令查看之前是否安装过。例如之前安装过版本,第二次又安装了版本,会导致最后的时候数据库无法启动并报错当存在两个版本冲突时,我采用的解决方式是直接使用命令删除安装的两个版本数据库,重新安装。 前言 在安装Postgresql数据库之前,需要先使用 brew list 命令查看之前是否安装过Postgresql。例如之前安装过Postgresql 10.1版...

    Dongjie_Liu 评论0 收藏0
  • 使用docker部署PostgreSQL数据库

    摘要:解决了服务器应用快速部署的问题。解决方案是自己装一个第二点,确保镜像服务器跑起来。你需要将真机的端口和虚拟机端口进行绑定,这样可以通过访问镜像服务器在真机上的端口,访问到数据库端口,进入镜像之中。 关于Docker的基本原理 原理上, 深入浅出Docker 一文讲的语言会更科学,我只捡不一定准确但直观而符合表面理解的一些讲一下。 Docker提供了基于操作系统级和应用级虚拟化的应用部署...

    singerye 评论0 收藏0
  • 使用docker部署PostgreSQL数据库

    摘要:解决了服务器应用快速部署的问题。解决方案是自己装一个第二点,确保镜像服务器跑起来。你需要将真机的端口和虚拟机端口进行绑定,这样可以通过访问镜像服务器在真机上的端口,访问到数据库端口,进入镜像之中。 关于Docker的基本原理 原理上, 深入浅出Docker 一文讲的语言会更科学,我只捡不一定准确但直观而符合表面理解的一些讲一下。 Docker提供了基于操作系统级和应用级虚拟化的应用部署...

    Loong_T 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<