psql: could not connect to server: No such file or directory (Mac OS X)
重启我的Mac后,我遇到了可怕的Postgres错误:
1 2 3 | 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而不确定没有正在运行的
解决方案:这解决了问题 - 我删除了这个文件,然后一切正常!
1 | /usr/LOCAL/var/postgres/postmaster.pid |
-
以下是我如何弄清楚为什么需要删除它。
我使用以下命令查看是否有任何PG进程在运行。对我来说没有,我甚至无法启动PG服务器:
1 | ps auxw | grep post |
我搜索了上面的错误消息中的.s.PGSQL.5432文件。我使用以下命令:
1 | sudo find / -name .s.PGSQL.5432 -ls |
在搜索我的整台计算机后没有显示任何内容,因此该文件不存在,但显然
我看了一下我的服务器日志,看到了以下错误:
1 | cat /usr/LOCAL/var/postgres/server.log |
在服务器日志的末尾,我看到以下错误:
1 2 | 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". |
根据错误消息中的建议,我删除了与server.log相同的目录中的postmaster.pid文件。这解决了问题,我能够重新启动。
因此,似乎我的macbook冻结并且被重新启动导致Postgres认为它的进程即使在重启后仍然在运行。删除此文件已解决。希望这有助于他人!很多人都有类似的问题,但大多数答案都与文件权限有关,而在我的情况下,情况则有所不同。
以上都不适合我。我不得不以下列方式重新安装Postgres:
-
使用brew:
brew uninstall postgresql 卸载postgresql -
brew doctor (修复此处的任何内容) -
brew cleanup -
删除所有Postgres文件夹:
-
rm -r /usr/local/var/postgres -
rm -r /Users/ /Library/Application\ Support/Postgres
-
-
使用brew:
brew install postgresql 重新安装postgresql -
启动服务器:
brew services start postgresql -
您现在应该创建数据库...(
)
如果你在macOS上并通过自制软件安装了postgres,请尝试重新启动它
1 | brew services restart postgresql |
如果您使用的是Ubuntu,可以使用其中一个命令重新启动它
1 2 3 | sudo service postgresql restart sudo /etc/init.d/postgresql restart |
也许这是不相关的,但是当您使用
1 2 | TO migrate existing DATA FROM a previous major version OF PostgreSQL run: brew postgresql-upgrade-DATABASE |
如果你的
正如此处所述
你好世界:)对我来说最好但最奇怪的方法就是做下一件事。
1)下载postgres93.app或其他版本。将此应用添加到/ Applications /文件夹中。
2)在文件
1 | export PATH=/Applications/Postgres93.app/Contents/MacOS/bin/:$PATH |
它是从
3)从
4)经过所有这些操作后,我很高兴运行
5)此外,如果您想以图形方式查看数据库,则应安装
当然,它仅对本地服务器有用。如果这些指示可以帮助那些面临这个问题的人,我将很高兴。
这个问题有很多来源,因而有很多答案。我经历过他们中的每一个。
1)如果你遇到某种崩溃,可能需要删除/usr/local/var/postgres/postmaster.pid文件,因为postgres可能没有正确处理它。但要确保没有进程正在运行。
2)Craig Ringer在其他帖子中指出Apple捆绑postgreSQL会导致pg gem安装问题设置PATH环境变量是一种解决方案。
3)另一种解决方案是卸载并重新安装gem。 Brew更新可能也是必要的。
如果您偶然发现这篇文章,如果您能确定其中一个来源,您将节省时间......
对我来说,解决方案只是重启我的电脑。我首先尝试使用Brew服务重新启动,当它不起作用时,重新启动似乎是下一个最好的选择,在研究一些更复杂的解决方案之前。一切都按原样运作。
我在这里遇到了类似的问题我解决了这个问题,如下所示。
实际上postgres进程已经死了,看到postgres的状态运行以下命令
1 | sudo /etc/init.d/postgres STATUS |
它会说这个过程已经死了。只需启动这个过程
1 | sudo /etc/init.d/postgres START |
在我的Mac(High Sierra)冻结后我发生了这种情况,我不得不手动重启(按住电源按钮)。我所要解决的就是彻底重启。
我的问题最终是因为我正在使用防毒面具(Mac的主机文件管理器),而我在我使用的主机文件中没有localhost条目。
我补充说:
1 | 127.0.0.1 localhost |
这解决了我的问题。
导致此错误的原因很多,因此首先找到您的日志文件并检查它是否有线索。它可能在
我不完全确定为什么,但我的Postgres安装有点搞砸,一些文件被删除导致错误OP显示。
尽管我能够运行
我浏览了postgres文档,发现我的文件
1 | initdb /usr/LOCAL/var/postgres |
似乎使用该命令进行了一些配置。
然后它让我运行这个:
1 | postgres -D /usr/LOCAL/var/postgres |
那告诉我一个postmaster.pid文件已经存在。
我只需要知道brew是否能够拿起我刚刚运行的配置,所以我测试了它。
1 | ls /usr/LOCAL/var/postgres |
这向我展示了一个postmaster.pid文件。然后我做了
然后我继续运行我的应用程序,实际上确实找到了服务器,但是我的数据库似乎已经消失了。
虽然我知道它们可能根本不存在 - 我所做的新初始化可能已经创建了一个新的data_area,并且没有指出旧的。我必须查看它的位置并将其指回,或者只是再次创建我的数据库。
希望这可以帮助!阅读postgres文档对我帮助很大。我讨厌阅读像"将其粘贴在其中的作品!"的答案。因为我不知道到底发生了什么,为什么。
我遇到过同样的问题。
大多数情况下,问题在于存在剩余文件
这适用于大多数人,但我的情况不同 - 我尝试谷歌搜索这个问题最近3个小时,在OSX上通过brew卸载postresql,清除数据库,没有任何工作。
最后,我注意到我遇到了brew的问题,每当我尝试安装任何东西时,它都弹出:
或者在安装结束时喜欢它。
我只是做了
我写下来因为这可能是其他人的解决方案
转到
并运行cat
在这里你会发现postgres失败的原因。
如果是智能关闭,那么可能你的
这应该工作;)
SUPER NEWBIE ALERT:我刚学习网页开发和我之后提到的特定教程我必须安装Postgres但实际上没有提到我必须运行它...一旦我打开Postgres应用程序一切都很好,花花公子。
我刚刚得到了与我的机器(
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"?
完成更新过程后,当我重新启动系统错误消失。它的工作就像以前的魅力一样..我猜这是因为pg正在更新而另一个流程开始了。
我不得不多次查阅这篇文章来解决这个问题。还有另一个修复,它也适用于其他正在运行的程序的类似问题。
我刚刚发现你可以使用以下两个命令。
$顶部
这将显示所有当前正在运行的操作及其pid编号。当你找到postgres和相关的pid
$ kill pid_number
我从LD_LIBRARY_PATH中删除了/ usr / lib并且它工作正常。
我在dockerfile postgres工作:alpine。
经过一些搜索,找到了类似的问题和一个简单的答案,我的工作:
只需"使用以下命令将现有版本升级到更新版本":
1 | brew postgresql-upgrade-DATABASE |
感谢ssamateh对这个相关主题的回答
@Jagdish Barabari的回答给了我解决这个问题的线索。原来有两个版本的postgresql安装,只有一个正在运行。清除所有postgresql文件并重新安装最新版本为我解决了这个问题。