1. 程式人生 > 資料庫 >解決postgreSql遠端連線資料庫超時的問題

解決postgreSql遠端連線資料庫超時的問題

首先在cmd中ping 這個ip如果發現可以ping通就可以考慮是 遠端資料庫開啟了防火牆、或者資料庫設定該ip不能訪問。

防火牆問題:可以考慮直接關閉防火牆,或者設定防火牆開放5432埠

解決postgreSql遠端連線資料庫超時的問題

然後到postgresql安裝目錄下data中修改pg_hba.conf檔案,配置使用者的訪問許可權,拉到底部

解決postgreSql遠端連線資料庫超時的問題

host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 md5 #表示允許網段192.168.1.0上的所有主機使用所有合法的資料庫使用者名稱
#訪問資料庫,並提供加密的密碼驗證
host all all 0.0.0.0/0 md5 #表示允許所有主機使用所有合法的資料庫使用者名稱訪問資料庫,並提供加密的
#密碼驗證。數字24是子網掩碼,表示允許192.168.1.0–192.168.1.255的計算機訪問!

修改postgresql.conf檔案

定位到#listen_addresses 一般都是預設為*,不是就改成*

解決postgreSql遠端連線資料庫超時的問題

然後重啟postgresql服務

補充:postgresql遠端連線中斷的解決

在阿里雲安裝了postgresql以後,上班時間連線公司網路,本地連線pg資料庫,隔幾分鐘就會自動斷開連線,很浪費開發效率,

比較鬱悶的是,下班時間連線家裡的網路就沒有問題,

研究了一段時間後,最終通過設定TCP的keepalive讓問題得到解決

[root@localhost ~]# sysctl -A | grep net.ipv4.tcp_keepalive
sysctl: reading key "net.ipv6.conf.all.stable_secret"
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 7200

- net.ipv4.tcp_keepalive_time - 在第一次keep alive請求傳送後,不活動連線的時間

- net.ipv4.tcp_keepalive_probes - 在這個連線被認為是斷開之前,keep alive請求被重發的次數

- net.ipv4.tcp_keepalive_intvl - keep alive探測的時間間隔

預設的超時設定太長,如果外網網路狀況不佳,可能會導致連線斷掉,

所以讓pg更頻繁地發出探測資料包來保持tcp連線:

[root@localhost ~]# sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_probes=3 net.ipv4.tcp_keepalive_intvl=10

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。