重新启动我的Mac,我得到了可怕的Postgres错误:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
发生这种情况的原因是由于一个无关的问题,我的macbook完全死机了,我不得不使用电源按钮进行硬重启。重启后,由于这个错误,我无法启动Postgres。
警告:如果您删除postmaster。Pid,而不确定是否真的有postgres进程在运行你,可能会永久破坏你的数据库。(PostgreSQL应该自动删除它,如果postmaster已经退出。)
解决方案:这解决了问题——我删除了这个文件,然后一切工作!
/usr/local/var/postgres/postmaster.pid
--
这就是我是如何发现为什么这个需要删除的。
我使用以下命令查看是否有任何PG进程正在运行。对我来说,没有,我甚至无法启动PG服务器:
Ps auxw | grep post
我搜索了. s.p gsql文件。5432在上面的错误消息中。我使用了以下命令:
sudo find / -name . s.p gsql。5432 - ls
在搜索了我的整个计算机后,这没有显示任何东西,所以文件不存在,但显然PSQL“想要它”或“认为它在那里”。
我看了一下我的服务器日志,看到了以下错误:
猫/usr/local/var/postgres/server.log
在服务器日志的末尾,我看到以下错误:
FATAL: pre-existing shared memory block (key 5432001, ID 65538) is still in use
HINT: If you're sure there are no old server processes still running, remove the shared memory block or just delete the file "postmaster.pid".
按照错误消息中的建议,我删除了邮政局长。Pid文件与server.log在同一目录下。这解决了问题,我可以重新启动。
所以,似乎我的macbook被冻结和硬重启导致Postgres认为它的进程在重启后仍在运行。删除此文件已解决。很多人都有类似的问题,但大多数答案都与文件权限有关,而我的情况则不同。
对我来说,最好但奇怪的方式是做下一步的事情。
1)下载postgres93。App或其他版本。将此应用程序添加到/Applications/文件夹中。
2)在.bash_profile文件(在我的主目录下)中添加一行(命令):
导出路径= /应用程序/ Postgres93.app /内容/ MacOS / bin /: $路径
这是Postgres93.app中psql的路径。每次启动控制台时,行(命令)都会运行。
3)启动Postgres93。app从/Applications/文件夹。它启动一个本地服务器(端口为“5432”,主机为“localhost”)。
4)在所有这些操作之后,我很高兴运行$ createuser -SRDP user_name和其他命令,并看到它工作!Postgres93。应用程序可以在每次系统启动时运行。
5)如果你想看到你的数据库图形化,你应该安装PG Commander.app。这是将postgres DB视为漂亮的数据表的好方法
当然,它只对本地服务器有帮助。如果这些说明能帮助到其他面临这个问题的人,我会很高兴。
我在编写psql (PostgreSQL) 9.6.11时遇到了同样的问题。
什么对我有用?
删除邮政局长。Pid——rm /usr/local/var/postgresql@9.6/postmaster.pid
重启postgres——brew服务重启postgresql@9.6
如果邮政局长。Pid不存在或上述进程不工作,则运行——
Sudo chmod 700 /usr/local/var/postgresql@9.6
这个问题有很多来源,因此也有很多答案。每一次我都经历过。
1)如果你有某种类型的崩溃,删除/usr/local/var/postgres/postmaster。Pid文件可能是必需的,因为postgres可能没有正确处理它。但是确保没有进程正在运行。
2) Craig Ringer在其他文章中指出,苹果捆绑postgreSQL导致pg gem安装问题,设置PATH环境变量是一个解决方案。
3)另一个解决方案是卸载并重新安装gem。酿造更新可能也是必要的。
如果你偶然发现了这篇文章,如果你能找到其中一个来源,你将节省时间……