2013-03-08 61 views
1

我改變了我的PostgreSQL服務器的端口,因此它創建的套接字不再被命名爲「.s.PGSQL.5432」。Rails PostgreSQL - 更改套接字名稱/位置

有沒有辦法更新/強制Rails/PGG來改變它看起來的套接字名稱?我曾嘗試卸載/重新安裝pg gem以符合建議,但它仍嘗試查找名爲.s.PGSQL.5432的套接字,而不是它應該按照database.yml註釋的.s.PGSQL.50000套接字, '套接字'配置行不適用於PostgreSQL。

  • 我明顯可以創建一個符號鏈接,但我希望有一個更優雅的方法來解決這個問題。
+0

** database.yml中的**端口**是什麼? – 2013-03-08 17:20:08

回答

1

更改端口在您的database.yml

PostgreSQL的支持兩種類型的連接,你都知道:TCP/IP和Unix域套接字。兩者都可以使用主機和端口,但以不同的方式使用它們。

使用TCP/IP時,主機和端口對於運行TCP/IP的網絡具有標準含義。

使用Unix域套接字時,主機提供目錄,而端口提供套接字名稱的數字部分。路徑應該是絕對的。同樣應該持有如此對任何基於libpq的連接(包括通過PG寶石),所以可以這樣考慮:

psql -h /tmp -p 5000 

這給出了一個錯誤信息:

$ psql -h /tmp -p 5000 
psql: could not connect to server: No such file or directory 
    Is the server running locally and accepting 
    connections on Unix domain socket "/tmp/.s.PGSQL.5000"? 

同理:

$ psql -h /foo -p 50000 
psql: could not connect to server: No such file or directory 
    Is the server running locally and accepting 
    connections on Unix domain socket "/foo/.s.PGSQL.50000"?