Postgresql
無法連接到遠端 postgresql 數據庫
我正在嘗試連接到遠端 psql 數據庫。在我添加帶有客戶端 IP 地址的 pg_hba.conf 條目之前,我收到了一條錯誤消息:
xdev@xdevbox:~$ psql -U postgres testdb -h 10.1.1.47 psql: FATAL: no pg_hba.conf entry for host "10.201.50.71", user "postgres", database "testdb", SSL off
我使用信任設置添加了客戶端的 IP。我還將伺服器上postgres.conf中的監聽地址更改為監聽“*”。然後我使用 /etc/init.d/postgresql restart 命令重新啟動了數據庫伺服器。
現在,當我嘗試連接時,我收到以下錯誤消息:
psql: could not connect to server: Connection refused Is the server running on host "10.1.1.47" and accepting TCP/IP connections on port 5432?
在 postgresql.conf 中,埠設置為 5432。我不確定還要檢查什麼。
謝謝
您必須配置以下兩個文件
pg_hba.conf
host all all 0.0.0.0/0 md5
postgresql.conf
listen_addresses='*'
您必須檢查埠 5432 是否打開:http ://www.yougetsignal.com/tools/open-ports/
如果不是,則將規則添加到您的
iptables
:iptables -A INPUT -s 0/0 -p tcp --dport 5432 -j ACCEPT
0/0:如果你想讓任何人訪問它。您可以將其更改為特定的 IP 地址或 IP 地址範圍。
我不同意使用
host all all 0.0.0.0/0 md5
如果您的數據庫暴露在網際網路上。在我的項目中,postrgres 在雲中,它是從後端使用的。我只需要直接連接到數據庫進行維護。我從公共 IP 連接到數據庫,比如 1.2.3.4。在這種情況下,正確的條目是:
host mybackend myuser 1.2.3.4/0 md5
請注意 IP 地址後的“/0”。如果沒有“/0”,您將收到“連接被拒絕錯誤”。
最好限制對數據庫的訪問,在白名單中指定數據庫名稱、數據庫使用者和 IP 地址。除非您處於開發環境中,否則切勿使用“ALL”。
再見!