我在我的Mac上运行Homebrew安装的Postgres版本9.6.3(High Sierra,10.13.3),今天早上我发现Postgres遇到了一些问题。它昨晚工作正常,然后我把电脑睡了......当我今天早上醒来并尝试运行凤凰应用程序时,我得到了
[error] Postgrex.Protocol (#PID<0.306.0>) failed to connect: ** (DBConnection.ConnectionError) tcp connect (localhost:5432): connection refused - :econnrefused
正在运行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"?
所以似乎服务器已经停止了......但是,运行我的别名pg-start
,转换为launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
返回
/usr/local/Cellar/postgresql/9.6.3/homebrew.mxcl.postgresql.plist: service already loaded
所以这很令人困惑,因为似乎有一个命令表明Postgres没有运行,而另一个命令表明它是。
我无法回想起来,但是我可能在昨晚让电脑进入睡眠状态之前已经停止了服务器,我实际上通常不这样做...我的pg-stop
别名是{{1 }}
我已尝试重启我的机器,但问题仍然存在。我在调试此类问题方面经验不足,所以我们非常感谢任何指导或建议。
答案 0 :(得分:0)
好吧,我解决了,但我不确定究竟是什么问题。为了获得更多错误信息,我跑了
postgres -D /usr/local/var/postgres
给了我
FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 323) running in data directory "/usr/local/var/postgres"?
我之前遇到过的,所以我知道如何继续......
以下是解决此问题的步骤:
首先,我跑了
pg_ctl -D /usr/local/var/postgres start
返回
pg_ctl: another server might be running; trying to start server anyway
server starting
My-MBP:~ me$ FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 1188) running in data directory "/usr/local/var/postgres"?
然后我运行了我的别名pg-stop
(请参阅上面的问题以获取完整命令),然后是
pg_ctl -D /usr/local/var/postgres start
一次。这一次,它返回了
server starting
My-MBP:~ me$ LOG: database system was shut down at 2018-02-07 11:10:43 EST
LOG: MultiXact member wraparound protections are now enabled
LOG: database system is ready to accept connections
LOG: autovacuum launcher started
现在Postgres正常运行 - psql
命令等
但是,现在我的别名pg-stop
无效 -
/Users/me/Library/LaunchAgents/homebrew.mxcl.postgresql.plist: Could not find specified service
我跑了
pg_ctl -D /usr/local/var/postgres stop
然后恢复了我的pg-stop
别名。现在,pg-start
和pg-stop
正在按原样运作。
我希望这对未来的某些人有所帮助,但如果有人能解释这里发生的事情,我真的很感激能够更深入地了解出了什么问题。