Mac 刚刚更新,postgres 现在坏了

Mac 刚刚更新,postgres 现在坏了

我在 maxbook air 上运行 postgres 9.1 / ruby​​ 1.9.2 / rails 3.1.0 进行本地开发。几个月来一切都运行顺利,(尽管这是我第一次在 Mac 上进行开发。)

这是去年的 MacBook Air,今天我收到了 mac osx 软件更新消息,就像之前几次一样,我的系统下载了大约 450mb 的更新并重新启动。它现在显示它在 OSX 10.7.3 上。

重点是,postgres 已经停止工作,当我正常启动我的瘦服务器(镜像 heroku cedar),然后浏览到我的 rails 应用程序时,我得到:

PG::Error

could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

发生了什么?浏览了几个问题后,我仍然感到困惑,但这里有一些额外的信息:

  • 从命令行运行 psql 会出现同样的错误
  • 我可以运行 pgadmin 3 并通过它连接并运行 SQL,没有任何问题
  • 跑步哪个 psql显示版本为 /usr/bin/psql
  • 我创建了一个PostgreSQL当我拿到 Mac 时(它一直在 Lion 上),我不知道为什么,几乎可以肯定我在遵循一个我忘记存储在笔记中的教程。重点是我知道还有一个 _postgres 用户。我知道这是胡说八道,但除了密码说明外,我没有任何关于如何配置 Postgres 的额外信息——尽管明显的暗示是我没有使用 _postgres 用户。

有人对可能发生的变化/我可以尝试调试和修复的内容有什么建议或信息吗?谢谢。

编辑:根据这个问题和答案进行玩弄:https://stackoverflow.com/questions/7975414/check-status-of-postgresql-server-mac-os-x,看到这串命令:

$ sudo su postgreSQL
bash-3.2$ /Library/PostgreSQL/9.1/bin/pg_ctl start -D /Library/PostgreSQL/9.1/data
pg_ctl: another server might be running; trying to start server anyway
server starting
bash-3.2$ 2012-04-08 19:03:39 GMT FATAL:  lock file "postmaster.pid" already exists
2012-04-08 19:03:39 GMT HINT:  Is another postmaster (PID 68) running in data directory "/Library/PostgreSQL/9.1/data"?

bash-3.2$ exit

答案1

如果机器在未经过实际关机过程的情况下关闭,那么 PostgreSQL 将拒绝在下次启动时启动。这是因为之前的 PID 文件仍然存在,并且 PostgreSQL 认为它已在运行。这就是您编辑中的错误消息告诉您的内容。

您需要postmaster.pid从 PostgreSQL 目录中删除该文件。根据您的错误消息,PID 文件的完整路径是:/Library/PostgreSQL/9.1/data/postmaster.pid。删除该文件后,PostgreSQL 将顺利启动。

相关内容