在rails控制台上,当我试图连接到具有ip地址的机器上的postgres数据库时,假设xxx。
Gem安装
gem 'dbi'
sudo apt-get install libpq-dev
gem 'dbd-pg'我还授予“postgres”用户所有权限,并在此xxx.xxx机器上重新启动postgres服务器。
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连接吗?
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>'请告诉我哪里出了问题。
谢谢..。
发布于 2013-11-12 09:52:24
连接psql并运行:
SHOW port;给出的端口肯定不是5432。您可能也在mac上;mac用户通常有一些二进制文件链接到操作系统提供的libpq (一个旧的PostgreSQL),还有一些链接到他们自己安装的PostgreSQL的libpq。它们可以具有不同的默认套接字目录和不同的TCP端口默认值。
你还应:
SHOW listen_addresses ;并确保它是*。如果它说的是localhost,那么您的PostgreSQL就不会监听外部IP,而只是本地回送。在这种情况下,您应该在配置文件中更改它。请参阅介绍性的PostgreSQL文档。
如果您已经确认PostgreSQL正在监听感兴趣的IP和端口,您应该确保没有防火墙阻止来自外部计算机的连接。这通常会导致超时,而不是连接拒绝错误。
https://stackoverflow.com/questions/19925645
复制相似问题