我已经安装了Postgresql,然后在我的本地Mac OSX Mountain Lion上运行了一堆rails应用程序并创建了数据库等。过了一段时间,当我启动pgAdminIII并尝试启动数据库服务器时,我收到了这个错误:
快速谷歌显示this帖子。更多的浏览指出,可能存在某种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就删除了东西。
有些专家可以指导一个菜鸟。
由于
答案 0 :(得分:129)
今天我在Mac Sierra遇到了同样的问题。在Mac Sierra中,您可以在postmaster.pid
内找到/Users/<user_name>/Library/Application Support/Postgres/var-9.6
。删除postmaster.pid
,问题将得到解决。
答案 1 :(得分:28)
如果数据库未正确关闭,通常会发生这种情况。
删除postmaster.pid文件:
rm /usr/local/var/postgres/postmaster.pid
或者,支持它:
mv /usr/local/var/postgres/postmaster.pid /usr/local/var/postgres/postmaster.pid.backup
答案 2 :(得分:18)
我现在正在使用数据库。
以下是我采取的步骤:
cd /
ls -la
MackintoshHD/usr/local/var/postgres
ls -la
cp postmaster.pid ~/Desktop
感谢@Craig Ringer的帮助
答案 3 :(得分:4)
我正在使用Postgres.app,以下内容对我有用:
我在下面的终端输入命令,事先找到Postgres文件夹,而不是使用“justin”。
$declare -x PGDATA="/Users/justin/Library/Application Support/Postgres/var-9.4"
$pg_ctl restart -m immediate
Justin在他的帖子中解释说,之后的输出是:
等待服务器关闭................................................................ pg_ctl失败: 服务器没有关闭
再次输入命令后:
$pg_ctl restart -m immediate
它奏效了,我收到了这条消息:
pg_ctl:旧服务器进程(PID:373)似乎已经不再启动服务器了 无论如何服务器启动LOG:数据库系统中断;持续 知道了2015-07-28 18:15:26 PDT日志:数据库系统没有 正确关闭;自动恢复进行中LOG:记录用 零长度为0 / 4F0F7A8日志:不需要重做日志:数据库 系统已准备好接受连接LOG:autovacuum启动器启动