遠端 postgres 連接

遠端 postgres 連接

好吧,我似乎已經嘗試了我能找到的所有東西 - 沒有那麼多 - 但無法理解為什麼我無法遠端連接到我的資料庫。

這是我所擁有的:

#postgresql.conf
listen_addresses = '12.34.56.78,localhost' # included my local ip
port = 5432                                # the port I'm trying to connect with
tcpip_socket = true                        

#pg_hba.conf
host    all         mydbuser       12.34.56.78/32         md5

I receive: connection to database 'name' failed, could not connect to server: Connection refused.
 Is the server running on host "domain.com" and accepting
 TCP/IP connections on port 5432?

netstat -ant | grep 5432 #returns nothing 

netstat -nltp | 網路統計grep 5432:不回傳任何內容

解決方案

事實上,我認為阻礙我理解這一點的是一篇關於這個主題的部落格文章寫得很糟糕。另一方面,一個很棒的教程在切片主機為我解決了問題,如果有人來這裡遇到同樣的問題,我建議他們仔細閱讀它。 Slicehost 的教程品質和維護確實值得讚揚,儘管我認為幫助人們使用他們的服務是一件好事。

感謝所有回答的人。

答案1

在資料庫伺服器上,您可以執行以下命令並發布輸出:

  • ps axf | grep postgres
  • 監聽埠netstat -nltp | grep 5432

若要繞過防火牆,請嘗試使用連接埠 80 或 8080 而不是 5432。

您是否從 12.34.56.78/32 連接(這是 pg_hba.conf 中允許的範圍)?

可以 ping 通 12.34.56.78 嗎?

從空netstat輸出來看,您的 postgres 進程似乎沒有偵聽連接埠!

當您重新啟動資料庫時,/var/log/postgresql/ 中是否會顯示任何有趣的內容。

答案2

你檢查過你的防火牆嗎?您可能有一些規則阻止訪問該端口

答案3

託管所有 mydbuser 12.34.56.78/32 md5

pg_hba.conf 中的這一行意味著只有來自主機 12.34.56.78 的使用者 mydbuser 才能連線。

因此,如果這是 PG 伺服器,您需要為主機或子網路新增另一行(即,如果您想要連接 12.34.45.01-254 中的任何一個,則需要輸入 12.34.56.00/24)

相關內容