繁体   English   中英

Postgresql 适配器 (pg):无法连接到服务器

[英]Postgresql adapter (pg): could not connect to server

我每次运行 Rails 应用程序时都会收到此错误(它无法连接到我的本地 Postgresql

/Users/leonardo/.rvm/gems/ruby-1.9.3-p362/gems/activerecord-3.2.11/lib/
active_record/connection_adapters/postgresql_adapter.rb:1208:in `initialize': 
could not connect to server: No such file or directory (PG::Error)
   Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

我正在使用正确运行的Postgres.app

如果我跑

$ psql

我可以正确登录到 Postgresql 控制台。

$ which psql
 /Applications/Postgres.app/Contents/MacOS/bin/psql

文件

source 'https://rubygems.org'
ruby "1.9.3"

gem 'rails', '3.2.11'
gem "pg"

数据库.yml

development:
  adapter: postgresql
  encoding: unicode
  username: leonardo
  password: 
  database: zapping
  port: 5432  

Postgresql (控制台)

$ psql
leonardo=# \l

在此处输入图片说明

尝试将host: localhost添加到您的 database.yml。 (基于: https : //stackoverflow.com/a/10793186/919641

您的Pg gem 是针对 Mac OS X 中预安装的 PostgreSQL libpq 编译的,并且您使用的是在较新版本中安装的psql ,反之亦然。

这可以通过指定 TCP/IP 连接,通过将localhost添加到database.yml ,但最好针对您实际运行的服务器的libpq编译Pg gem。 为此,您应该能够在编译之前将PATH环境变量设置为包含正确pg_config的文件夹。 在您的情况下,它将位于Postgres.app某个位置。

如果在添加host: localhost后它仍然不起作用,请删除postmaster.pid

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

您应该将host: localhost添加到您的数据库配置中...

我在 Mac 上遇到了同样的问题。 原来我的路径上的 psql 无法正常工作。 尝试通过键入以下内容启动 psql:

~/projects/some_project/project-rails$ psql
  psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

如果您看到这一点,则表示您路径上的 psql 二进制文件正在尝试使用套接字进行连接,但无法连接(无论出于何种原因)。 由于我已经下载了pgadmin并且连接正常,我知道这不是服务器的问题。

通过将正确版本的 pgsql 添加到我的 PATH 来修复它

export PATH=/Applications/Postgres.app/Contents/MacOS/bin:$PATH

现在 psql(和 rails)很高兴!

我有同样的问题。 您必须实际运行/启动 postgres。 Postgres 最近一定在我的电脑上停止运行了,所以我必须通过启动 postgres 服务器来确保它正在运行

postgres -D /usr/local/var/postgres

然后以下命令(这导致我遇到了与您相同的错误)都有效:

bundle exec rake db:create db:migrate
bundle exec rspec

我有这个问题。 这里的评论之一帮助我解决了这个问题。

谢谢,这个答案帮助我解决了这个问题。 我采取的步骤很简单:1)gem uninstall pg,2)bundle install,完成。 – 哈斯洛 2013 年 12 月 3 日 20:27

gem uninstall pg
bundle install

由于这是我的搜索结果中出现的第一篇文章,因此我决定为此发布更新的修复程序。 由于上述建议都不适合我。

brew postgresql-upgrade-database

它升级了 postgresql 数据并移动了我的旧版本。 我在 9.6 而不是 10.4

这里找到了解决方案

find / -name 'postgresql.conf'

netstat -an | grep 5432 # => /tmp/.s.PGSQL.5432

vi /Users/admin/Library/Application\\ Support/Postgres93/var/postgresql.conf

来自: unix_socket_directories = '/tmp'

至: unix_socket_directories = '/var/pgsql_socket'

须藤 mkdir /var/pgsql_socket

须藤 chmod 777 /var/pgsql_socket

对于heroku,这就是你所需要的。

heroku addons:create heroku-postgresql

production:
 adapter: postgresql
 encoding: unicode
 host: localhost
 # For details on connection pooling, see rails configuration guide
 # http://guides.rubyonrails.org/configuring.html#database-pooling
 pool: 5

我只是遇到了 postgres 应用程序没有在我的 Mac 上运行的问题...

在 Mac 上,我有不同版本的 postgresql。 当我尝试brew switch postgresql 9.5.5时,这个问题已经解决了(我认为此时版本号并不重要)

$ brew switch postgresql 9.5.5
Cleaning /usr/local/Cellar/postgresql/9.6.1
Cleaning /usr/local/Cellar/postgresql/9.6.5
Cleaning /usr/local/Cellar/postgresql/10.2
Cleaning /usr/local/Cellar/postgresql/10.3
Cleaning /usr/local/Cellar/postgresql/9.5.5
Cleaning /usr/local/Cellar/postgresql/9.5.4

顺便说一下,所有数据都将消失。 我想有一个 brew 命令可以在不切换版本的情况下执行此操作,我找不到。

我在 OS High sierra 10.13 上遇到了同样的问题我按照本网站的说明下载了 10.4 版参考: https : //postgresapp.com/

然后我将其添加到 bash 配置文件中: export PATH=$PATH:/Library/PostgreSQL/10.4/bin:$PATH

重新启动终端。

打开新的窗口终端,然后输入: psql -U postgres

之后,您将看到此消息: psql (10.4) 键入“help”以获得帮助。

postgres=#

我的问题是/etc/hosts文件已更改并且没有此关键条目: 127.0.0.1 localhost

我有一个类似的问题 - 当我在终端中运行psql命令时,我仍然遇到同样的错误,所以这告诉我 pg gem 没有问题,我应该检查 postgres 设置本身。 所以我检查了 postgres 日志 - 在我的情况下它们位于/usr/local/var/log/postgres.log并且我看到以下错误:

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.66.dylib
  Referenced from: /usr/local/opt/postgresql/bin/postgres

所以知道确切的错误帮助我解决了这个问题,在我的情况下,我运行了这个答案

brew switch icu4c 66.1

重新启动postgres后解决了这个问题:

brew services restart postgresql

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM