2013-12-19 25 views
1

我一直在Rails中使用Postgres,沒有問題,也沒有問題運行psql。但是,我遇到了嘗試使用pg寶石連接到數據庫的問題。如何通過Ruby的pg gem(Rails外部)連接到Postgres數據庫

以下代碼:

PG.connect 

生成錯誤/輸出:

PG::ConnectionBad: 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"? 

結果是相同的I是否指定各種dbname:值或不或僅讓此默認值。

當我點擊屏幕頂部的小象圖標時,它會顯示「運行在5432端口上」,正如我所說的,我可以連接psql而沒有問題。

我發現非常相似cannot connect to Postgres (pg) database from my Ruby Script using gem "pg"(This is not rails, just pure ruby),但答案只是說Rails工作正常。

任何指導,將不勝感激。 (注意:我意識到我沒有輸入任何名稱/密碼信息,但我不必輸入,而不是當我運行psql時,我收集它沒有達到驗證點)。

回答

5

您需要指定一個主機。它試圖在unix域套接字上連接。 PG應用程序不會偵聽unix套接字(除非將其配置爲),而是在localhost:5432上運行。

conn = PG.connect(host: 'localhost') 
+0

謝謝。這照顧了它。我會在今晚晚些時候再接受(現在得跑步)。 –

0

這是很可能的是,實際的問題是,你的「PG」創業板已經連接到舊版本的libpq動態庫。有關更多詳細信息和可能的解決方案,請參閱this post