99

我已经安装了 Postgresql,然后在我的本地 Mac OSX Mountain Lion 上运行了一堆 Rails 应用程序并创建了数据库等。今天过了一段时间,当我启动 pgAdminIII 并尝试启动数据库服务器时,我收到了这个错误:

在此处输入图像描述

一个快速的谷歌显示了这篇文章。更多浏览指出这样一个事实,即可能存在某种 postmaster.pid 文件,这可能是造成这种情况的根本原因。如果我删除那一切就好了。

但是,在我删除计算机上的内容之前,我想确保我以一种不会导致更多问题的系统方式进行调试。

在删除该文件之前,我在某处读到过,我需要运行以下命令:

  ps auxw | grep post

如果我没有得到任何结果,则可以删除该文件。否则没有。好吧,我得到了这个命令的结果:

  AM               476   0.0  0.0  2423356    184 s000  R+    9:28pm   0:00.00 grep post

所以现在我当然完全糊涂了。

所以我该怎么做?

这是我的 postgres 服务器错误日志的一部分:

 FATAL:  lock file "postmaster.pid" already exists
 HINT:  Is another postmaster (PID 171) running in data directory "/usr/local/var/postgres"?

Postgresql 仍然没有运行,仍然得到同样的错误并且没有任何改变。我太胆小了,不能在不检查 SO 的情况下删除东西。

你们中的一些专家可以请指导一个菜鸟。

谢谢

4

4 回答 4

232

我今天在 Mac Sierra 上遇到了同样的问题。在 Mac Sierra 中,您可以在postmaster.pid里面找到/Users/<user_name>/Library/Application Support/Postgres/var-9.6. 删除postmaster.pid和问题将得到修复。

于 2017-03-17T11:26:12.010 回答
67

如果数据库没有正确关闭,就会发生这种情况。要修复它,只需删除该postmaster.pid文件。该位置因您的操作系统而异:

苹果系统:

 rm /Users/<user_name>/Library/Application\ Support/Postgres/var-9.6/postmaster.pid

或使用 Postgres.app:

 rm /Users/<user>/Library/Application\ Support/Postgres/var-10/postmaster.pid

Linux:

 rm /usr/local/var/postgres/postmaster.pid
于 2014-12-08T20:39:37.890 回答
27

我现在有数据库工作。

以下是我采取的步骤:

  1. 我重新启动了我的电脑
  2. 我打开终端并运行cd /
  3. 然后我做了ls -la
  4. 确保我可以到达MackintoshHD/usr/local/var/postgres
  5. 然后做了ls -la
  6. 在这里我看到了 postmaster.pid 文件
  7. 我运行了这个命令cp postmaster.pid ~/Desktop,将文件复制到我的桌面。如果我要删除文件,我喜欢这样做。如果有什么问题我可以把它放回去
  8. 然后我运行这个命令从 postgres 目录中删除文件rm -r postmaster.pid
  9. 我去了我的 pgadmin3 gui 并启动了它。瞧,它起作用了:)

感谢@Craig Ringer 的帮助

于 2013-07-23T10:49:21.327 回答
4

我正在使用 Postgres.app,以下对我有用:

我在下面的终端中输入了命令,事先找到了 Postgres 文件夹,而不是使用“justin”。

$declare -x PGDATA="/Users/justin/Library/Application Support/Postgres/var-9.4"

$pg_ctl restart -m immediate

正如贾斯汀在他的帖子中解释的那样,之后的输出是:

等待服务器关闭…………………………………………………………失败 pg_ctl:服务器没有关闭

再次输入命令后:

$pg_ctl restart -m immediate

它奏效了,我收到了这条消息:

pg_ctl:旧的服务器进程(PID:373)似乎已经不在启动服务器服务器启动日志:数据库系统被中断;最后一次知道于 2015-07-28 18:15:26 PDT LOG:数据库系统未正确关闭;正在进行自动恢复 LOG:0/4F0F7A8 处长度为零的记录 LOG:不需要重做 LOG:数据库系统已准备好接受连接 LOG:autovacuum 启动器已启动

资源

于 2017-07-31T22:13:19.367 回答