首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DBI::OperationalError:未能连接到服务器:拒绝连接

DBI::OperationalError:未能连接到服务器:拒绝连接
EN

Stack Overflow用户
提问于 2013-11-12 09:41:18
回答 1查看 811关注 0票数 1

在rails控制台上,当我试图连接到具有ip地址的机器上的postgres数据库时,假设xxx。

Gem安装

代码语言:javascript
复制
gem 'dbi'  
sudo apt-get install libpq-dev
gem 'dbd-pg'

我还授予“postgres”用户所有权限,并在此xxx.xxx机器上重新启动postgres服务器。

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON DATABASE test TO postgres WITH GRANT OPTION
sudo /etc/init.d/postgresql restart

我收到了跟随错误。

1.9.3p448 :001 > dbh =DBI.connect(“DBI:Pg:test:xxx.xxx”、"postgres“、"") 操作错误:无法连接到服务器:拒绝连接是服务器在主机“xxx.xxx”上运行,并且在端口5432上接受TCP/IP连接吗?

代码语言:javascript
复制
from /home/ashwini/.rvm/gems/ruby-1.9.3-p448/gems/dbd-pg-0.3.9/lib/dbd/pg/database.rb:82:in `rescue in initialize'
from /home/ashwini/.rvm/gems/ruby-1.9.3-p448/gems/dbd-pg-0.3.9/lib/dbd/pg/database.rb:41:in `initialize'
from /home/ashwini/.rvm/gems/ruby-1.9.3-p448/gems/dbd-pg-0.3.9/lib/dbd/Pg.rb:157:in `new'
from /home/ashwini/.rvm/gems/ruby-1.9.3-p448/gems/dbd-pg-0.3.9/lib/dbd/Pg.rb:157:in `connect'
from /home/ashwini/.rvm/gems/ruby-1.9.3-p448/gems/dbi-0.4.5/lib/dbi/handles/driver.rb:33:in `connect'
from /home/ashwini/.rvm/gems/ruby-1.9.3-p448/gems/dbi-0.4.5/lib/dbi.rb:148:in `connect'
from (irb):1
from /home/ashwini/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.1.1/lib/rails/commands/console.rb:45:in `start'
from /home/ashwini/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.1.1/lib/rails/commands/console.rb:8:in `start'
from /home/ashwini/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.1.1/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

请告诉我哪里出了问题。

谢谢..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-12 09:52:24

连接psql并运行:

代码语言:javascript
复制
SHOW port;

给出的端口肯定不是5432。您可能也在mac上;mac用户通常有一些二进制文件链接到操作系统提供的libpq (一个旧的PostgreSQL),还有一些链接到他们自己安装的PostgreSQL的libpq。它们可以具有不同的默认套接字目录和不同的TCP端口默认值。

你还应:

代码语言:javascript
复制
SHOW listen_addresses ;

并确保它是*。如果它说的是localhost,那么您的PostgreSQL就不会监听外部IP,而只是本地回送。在这种情况下,您应该在配置文件中更改它。请参阅介绍性的PostgreSQL文档。

如果您已经确认PostgreSQL正在监听感兴趣的IP和端口,您应该确保没有防火墙阻止来自外部计算机的连接。这通常会导致超时,而不是连接拒绝错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19925645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档