Postgresql 服务器在 OS X Yosemite 升级后不会启动,自制软件



重新创建错误的步骤:

  • brew uninstall postgresql
  • brew prune
  • brew install postgresql
  • 运行 postgresql 启动命令
  • psql

收益 率:

psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

我尝试过的建议修复

程序不起作用:

创建缺少的符号链接:

  • sudo mkdir /var/pgsql_socket/
  • sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

删除Postmaster.pid文件(与上面的链接相同):

  • rm /usr/local/var/postgres/postmaster.pid

从升级中创建可能"清理"的目录:

  • mkdir -p /usr/local/var/postgres/{pg_tblspc,pg_twophase,pg_stat_tmp}/ touch /usr/local/var/postgres/{pg_tblspc,pg_twophase,pg_stat_tmp}/.keep

相关 GitHub 问题

编辑 1:

本文正确地推测,有多个版本的 postgres 正在使用中,并且必须指定哪些pg_ctl(如下)。奇怪的是,/usr/local/var有两个目录:postgre & postgres 。如果有人知道要更新哪些设置以直接使用正确的pg_ctl命令,我将不胜感激!

/usr/local/Cellar/postgresql/9.3.5_1/bin/pg_ctl -D /usr/local/var/postgre start

我遇到了同样的问题,在查看日志文件后,我发现缺少一个目录:

$ tail /usr/local/var/postgres/server.log
FATAL:  could not open directory "pg_tblspc": No such file or directory

然后我做了$ mkdir /usr/local/var/postgres/pg_tblspc,重新启动PostgreSQL并得到:

$ tail /usr/local/var/postgres/server.log
FATAL:  could not open directory "pg_replslot": No such file or directory

重做该过程后,我可能会创建以下目录,然后成功启动PostgreSQL:

/usr/local/var/postgres/pg_tblspc
/usr/local/var/postgres/pg_replslot
/usr/local/var/postgres/pg_twophase
/usr/local/var/postgres/pg_logical
/usr/local/var/postgres/pg_logical/mappings

我希望这有所帮助。

最新更新