Mac 刚刚更新,postgres 现在坏了

use*_*224 0 postgresql macos

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

这是去年的 macbook air,今天我收到了 mac osx 软件更新消息,因为我之前有几次,我的系统下载了大约 450mb 的更新并重新启动。它现在说它在 OSX 10.7.3 上。

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

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"?
Run Code Online (Sandbox Code Playgroud)

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

  • 从命令行运行 psql 给出相同的错误
  • 我可以运行 pgadmin 3 并通过它连接并运行 SQL 没有问题
  • 运行which psql将版本显示为 /usr/bin/psql
  • 当我拿到 mac 时,我创建了一个PostgreSQL用户(它总是在 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
Run Code Online (Sandbox Code Playgroud)

小智 5

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

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