无法连接到服务器:没有这个文件或目录(PG :: ConnectionBad)

12
昨天没有出现这个错误。我没有在应用程序中做任何更改。只是睡了一晚上,现在就出现了这个错误。
错误:
home/dartnyan/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.6/lib/
active_record/connection_adapters/
postgresql_adapter.rb:651:in `initialize': could not connect to server:
No such file or directory (PG::ConnectionBad)
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

数据库配置文件database.yml

default: &default
  adapter: postgresql
  pool: 5
  imeout: 5000

development:
  adapter: postgresql
  database: shop_development
  pool: 5
  username: dartnyan
  password: kurt1245
test:
 adapter: postgresql
 encoding: unicode
 database: shop_test
 pool: 5
 username: dartnyan
 password: kurt1245

2
我不建议像那样把你的用户名和密码留在公开的网络上。 - luissimo
@luissimo 我没有留下任何链接到我的应用程序,但好吧,下次我不会再忘记填写这些字段了。 - Darth Nyan
5个回答

34

我发现在终端中输入以下内容有帮助:

$ cd /usr/local/var/postgres/

$ rm postmaster.pid

我在http://alumni.lewagon.org/questions/60上找到了这个。

它还描述了可能正在发生的事情。如果Postgresql没有“优雅地”关闭,则文件可能会损坏。例如,如果您笔记本电脑的电池耗尽。


2
虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。如果链接页面更改,仅链接的答案可能会失效。-【来自审查】 - MikeT
1
@MikeT 谢谢您的反馈。我希望我的编辑更好了。 - T. Gerdy
1
我已经通过查找PG所在的端口,杀死PID(但你总是要获取父PID,否则它会不断产生新进程),但与此相比,这确实感觉像是额外的工作。手动删除PID,哈哈,如此简单明了,谢谢! - HolyMoly

5

请在你的终端上执行以下命令

rm /usr/local/var/postgres/postmaster.pid

如果您有特定版本的Postgres:

## version 11 for example
rm /usr/local/var/postgresql@11/postmaster.pid 

2
只是让你知道,这对我起作用了,谢谢。 - Dr Linh Chi Nguyen

2

看起来Postgres服务器没有运行。通过运行以下命令启动服务器:

 sudo service postgresql start

不行,但昨天我可以。dartnyan@PC:~/Projects/shop$ sudo -u postgres psql psql: 无法连接到服务器:没有这样的文件或目录 服务器是否在本地运行并接受 Unix域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接? - Darth Nyan

1
我重新安装了PostgreSQL,现在它可以正常工作了。

可以通过执行 rm /usr/local/var/postgres/postmaster.pid 来完成。 - Abdul Basit Mangat

0
在我的情况下,这是由于Mac OS的更新引起的,我的配置是Ruby 2.6.3和Rails 6.0.3.4,我需要PostgreSQL 12,请确认您安装了正确版本的PostgreSQL,如果需要,请重新安装,最后在您的项目中执行以下操作:
gem uninstall pg
bundle install

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接