OS X Yosemite升级后,自制软件将无法启动Postgresql服务器

b_a*_*her 2 postgresql homebrew osx-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"?
Run Code Online (Sandbox Code Playgroud)

我尝试过的建议修复不起作用:

创建缺少的符号链接:

  • 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/varpostgrepostgres。如果有人知道要更新哪些设置以pg_ctl直接使用正确的命令,我将不胜感激!

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

小智 5

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

$ tail /usr/local/var/postgres/server.log
FATAL:  could not open directory "pg_tblspc": No such file or directory
Run Code Online (Sandbox Code Playgroud)

然后我做了$ 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
Run Code Online (Sandbox Code Playgroud)

重做该过程之后,可能会确定创建以下目录,然后成功启动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
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助。