[英]DBI::OperationalError: could not connect to server: Connection refused
在Rails控制台上,當我嘗試連接到具有IP地址的機器上的postgres數據庫假定為xxx.xxx.xxx.xxx時。
寶石安裝
gem 'dbi'
sudo apt-get install libpq-dev
gem 'dbd-pg'
我還向“ postgres”用戶授予了所有權限,並在此xxx.xxx.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.xxx.xxx”,“ postgres”,“”)
DBI :: OperationalError:無法連接到服務器:連接被拒絕服務器是否在主機“ xxx.xxx.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>'
請告訴我哪里出了問題。
謝謝...
與psql
連接並運行:
SHOW port;
Betcha提供的端口不是5432
。 您可能也在Mac上; 這是常見的Mac用戶有一個鏈接到一些二進制文件libpq
由操作系統提供(舊PostgreSQL的)和一些對libpq
他們自己安裝一個PostgreSQL的。 這些可以具有不同的默認套接字目錄和不同的TCP端口默認值。
您還應該:
SHOW listen_addresses ;
並確保它是*
。 如果改為顯示localhost
則您的PostgreSQL不監聽外部IP,僅監聽本地環回。 在這種情況下,您應該在配置文件中進行更改。 請參閱入門PostgreSQL文檔。
如果已確認PostgreSQL正在偵聽目標IP和端口,則應確保沒有防火牆阻止來自外部計算機的連接。 但這通常會導致超時,而不是連接被拒絕的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.