错误的全文如下:
psql:无法连接到服务器:没有这样的文件或目录。服务器是否在本地运行并接受 Unix 域套接字“/tmp/.s.PGSQL.5432”上的连接?
这是我第二次在我的 Mac 上通过 Homebrew 设置 Postgresql,我不知道发生了什么。以前,它一直在工作。在某些时候,我一定输入了一个把事情搞砸的命令。我不确定。现在,每当我从命令行输入 SQL 命令时,我都会收到上述消息。我已经运行了一个命令来检查服务器是否正在运行,但显然不是。如果我尝试使用启动服务器
$ postgres -D /usr/local/pgsql/data
我收到以下错误:
postgres 无法访问服务器配置文件“/usr/local/pgsql/data/postgresql.conf”:没有这样的文件或目录
我已经通过 Homebrew 卸载并重新安装了 Postgresql,但问题仍然存在。我完全不知道如何让它工作。任何帮助,将不胜感激。
该问题也可以归因于留下
postmaster.pid
文件的崩溃进程。我也一样
Homebrew install / start / stop / restart 循环无济于事......
最后,
brew postgresql-upgrade-database
工作了。似乎我使用的是 9.6 而不是 10.4,并且我最近的 App Store 重新启动重新启动了我所有的数据库服务器......
答案就在这里。
运行以下命令手动启动服务器:
我刚刚解决了同样的问题。只是因为我忘记在使用前正确运行它。
对于Mac OS 上的纯安装
postgresql
,过程将是(使用brew命令):那么如果你想
postgresql
在登录时自动运行:否则您只想随时运行它:
如果您的情况更复杂,让我们
brew uninstall postgresql
重做这些步骤。希望能帮助到你!
我不断收到上述错误,上述解决方案均不适合我。最后,以下解决方案解决了我在 Mac OS X 上的问题
使用 brew 安装 postgres
安装冲泡服务
将 postgres 作为后台服务启动
手动停止 postgres
我们也可以使用 brew services 来重启 Postgres
当 postgres 服务器未运行时会发生这种情况。在 MAC 上通过 Homebrew 正确安装 Postgres 的步骤:
brew install postgres
initdb /Users/<username>/db -E utf8
[这将初始化 postgres 以使用给定目录作为数据库目录。通常不建议使用用户目录进行数据库存储。编辑 sudoers 文件以添加 initdb 和类似命令,然后在 /usr/local/var/postgres 上运行 initdb]pg_ctl -D /Users/<username>/db -l logfile start
[第 2 步成功后会提示运行第 3 步。此命令手动启动服务器。]我找了很长时间,这是最干净整洁的解决方案:
我最近使用 brew upgrade postgres 将 Postgres 从 9.2 升级到 9.3。这个过程很顺利,pg_upgrade 是一个非常方便的工具。
但是,一旦我尝试运行任何需要连接到 Postgres 的规范,麻烦就来了。尽管 Postgres 确实在运行,但突然间我得到了:
无法连接到服务器:没有这样的文件或目录 (PG::ConnectionBad) 服务器是否在本地运行并接受 Unix 域套接字“/var/pgsql_socket/.s.PGSQL.5432”上的连接?问题是新版本的 Postgres 改为监听 /tmp/.s.PGSQL.5432。我本可以弄乱配置并让 Postgres 使用以前的域套接字,或者明确告诉 Rails 如何连接,但这两种方法似乎都是我不应该做的工作。我从来没有告诉 Rails 在该路径上连接到 postgres,Rails 已经假设了,现在它的假设是错误的。
修复很简单,如果有点令人惊讶的话。当您安装 'pg' gem 时,它会检测安装了哪个版本的 Postgres 并适当地设置域套接字路径。解决方案就像重新安装 gem 一样简单。
$ gem uninstall pg $ cd my-rails-app/ $ bundle install
http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/
它对我有用。根据系统中的版本更改您的 postgresql 目录。
共同路径——
rm /usr/local/var/postgres/postmaster.pid
但是对于我系统路径中的 [email protected] 是
rm /usr/local/var/[email protected]/postmaster.pid
重启 [email protected]
brew services restart [email protected]
我只是在 /etc/postgresql/9.5/main/postgresql.conf 中取消注释
并重新启动 postgres。对我来说它有效。
最近我遇到了类似的问题。还有另一个问题和解决方案。我正在运行 2 个版本的 postgres(9.3 和 9.6),尽管服务器设置为在 2 个不同的端口上运行,但是 bash 上的 psql 命令如何尝试连接到默认端口 5432。确保检查您的服务器是否正在运行并检查您的端口设置,然后运行
psql -p <port> postgres
. 解决方案是更改端口。