首先在cmd中ping 這個ip如果發(fā)現(xiàn)可以ping通就可以考慮是 遠程數(shù)據(jù)庫開啟了防火墻、或者數(shù)據(jù)庫設(shè)置該ip不能訪問。
防火墻問題:可以考慮直接關(guān)閉防火墻,或者設(shè)置防火墻開放5432端口

然后到postgresql安裝目錄下data中修改pg_hba.conf文件,配置用戶的訪問權(quán)限,拉到底部

host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 md5 #表示允許網(wǎng)段192.168.1.0上的所有主機使用所有合法的數(shù)據(jù)庫用戶名
#訪問數(shù)據(jù)庫,并提供加密的密碼驗證
host all all 0.0.0.0/0 md5 #表示允許所有主機使用所有合法的數(shù)據(jù)庫用戶名訪問數(shù)據(jù)庫,并提供加密的
#密碼驗證。數(shù)字24是子網(wǎng)掩碼,表示允許192.168.1.0–192.168.1.255的計算機訪問!
修改postgresql.conf文件
定位到#listen_addresses 一般都是默認為*,不是就改成*

然后重啟postgresql服務(wù)
補充:postgresql遠程連接中斷的解決
在阿里云安裝了postgresql以后,上班時間連接公司網(wǎng)絡(luò),本地連接pg數(shù)據(jù)庫,隔幾分鐘就會自動斷開連接,很浪費開發(fā)效率,
比較郁悶的是,下班時間連接家里的網(wǎng)絡(luò)就沒有問題,
研究了一段時間后,最終通過設(shè)置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請求發(fā)送后,不活動連接的時間
- net.ipv4.tcp_keepalive_probes
- 在這個連接被認為是斷開之前,keep alive請求被重發(fā)的次數(shù)
- net.ipv4.tcp_keepalive_intvl
- keep alive探測的時間間隔
默認的超時設(shè)置太長,如果外網(wǎng)網(wǎng)絡(luò)狀況不佳,可能會導(dǎo)致連接斷掉,
所以讓pg更頻繁地發(fā)出探測數(shù)據(jù)包來保持tcp連接:
[root@localhost ~]# sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_probes=3 net.ipv4.tcp_keepalive_intvl=10
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- postgresql修改完端口后直接psql連接數(shù)據(jù)庫報錯的解決
- postgres 連接數(shù)查看與設(shè)置操作