首先在cmd中ping 這個(gè)ip如果發(fā)現(xiàn)可以ping通就可以考慮是 遠(yuǎn)程數(shù)據(jù)庫(kù)開(kāi)啟了防火墻、或者數(shù)據(jù)庫(kù)設(shè)置該ip不能訪問(wèn)。
防火墻問(wèn)題:可以考慮直接關(guān)閉防火墻,或者設(shè)置防火墻開(kāi)放5432端口
![](/d/20211018/d714db897edaf877b1d3f502f4d4b548.gif)
然后到postgresql安裝目錄下data中修改pg_hba.conf文件,配置用戶(hù)的訪問(wèn)權(quán)限,拉到底部
![](/d/20211018/6fe9e0ca5282b6e9d4e9d77635c281a8.gif)
host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 md5 #表示允許網(wǎng)段192.168.1.0上的所有主機(jī)使用所有合法的數(shù)據(jù)庫(kù)用戶(hù)名
#訪問(wèn)數(shù)據(jù)庫(kù),并提供加密的密碼驗(yàn)證
host all all 0.0.0.0/0 md5 #表示允許所有主機(jī)使用所有合法的數(shù)據(jù)庫(kù)用戶(hù)名訪問(wèn)數(shù)據(jù)庫(kù),并提供加密的
#密碼驗(yàn)證。數(shù)字24是子網(wǎng)掩碼,表示允許192.168.1.0–192.168.1.255的計(jì)算機(jī)訪問(wèn)!
修改postgresql.conf文件
定位到#listen_addresses 一般都是默認(rèn)為*,不是就改成*
![](/d/20211018/3f59a12aa3ef914e7056171e0e8362ce.gif)
然后重啟postgresql服務(wù)
補(bǔ)充:postgresql遠(yuǎn)程連接中斷的解決
在阿里云安裝了postgresql以后,上班時(shí)間連接公司網(wǎng)絡(luò),本地連接pg數(shù)據(jù)庫(kù),隔幾分鐘就會(huì)自動(dòng)斷開(kāi)連接,很浪費(fèi)開(kāi)發(fā)效率,
比較郁悶的是,下班時(shí)間連接家里的網(wǎng)絡(luò)就沒(méi)有問(wèn)題,
研究了一段時(shí)間后,最終通過(guò)設(shè)置TCP的keepalive讓問(wèn)題得到解決
[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請(qǐng)求發(fā)送后,不活動(dòng)連接的時(shí)間
- net.ipv4.tcp_keepalive_probes
- 在這個(gè)連接被認(rèn)為是斷開(kāi)之前,keep alive請(qǐng)求被重發(fā)的次數(shù)
- net.ipv4.tcp_keepalive_intvl
- keep alive探測(cè)的時(shí)間間隔
默認(rèn)的超時(shí)設(shè)置太長(zhǎng),如果外網(wǎng)網(wǎng)絡(luò)狀況不佳,可能會(huì)導(dǎo)致連接斷掉,
所以讓pg更頻繁地發(fā)出探測(cè)數(shù)據(jù)包來(lái)保持tcp連接:
[root@localhost ~]# sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_probes=3 net.ipv4.tcp_keepalive_intvl=10
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- postgresql修改完端口后直接psql連接數(shù)據(jù)庫(kù)報(bào)錯(cuò)的解決
- postgres 連接數(shù)查看與設(shè)置操作