本地宿主機遠程連接虛擬機postgreSQL失敗超時問題解決

本地宿主機遠程連接虛擬機postgreSQL失敗超時問題解決

問題描述

虛擬機版本:CentOS8
PostgreSQL版本: 10.6
虛擬機上安裝好postgreSQL後, 按常規方法重新配置了pg_hba.conf postgresql.conf兩個文件,然後回到宿主機,使用navicat客戶端去連接虛擬機的postgreSQL,一直都是報連接超時,連接不上。

整個處理流程

  1. updatedb;
  2. locate postgresql.conf(以此找到postgresql.conf文件位置,pg_hba.conf和它在同一個目錄下,我的虛擬機目錄是/var/lib/pgsql/data/);
  3. 使用vim修改pg_hba.conf、postgresql.conf並保存,按其它博客修改即可;
  4. su - postgres(切換用戶到postgres);
  5. 先pg_ctl reload,再pg_ctl -D /var/lib/pgsql/data/ restart;
  6. 第5步跑不通的話,直接pg_ctl -D /var/lib/pgsql/data/ start;
  7. netstat -ano|grep 5432 說明:tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN,如果出現這句基本可以確定前面的配置已經生效了;
  8. psql -h 192.168.1.151 -U postgres 說明: -h後邊跟上你的虛擬機的IP地址,如果此時能正常讓你輸密碼進行連接,進一步說明了postgreSQL的配置已經沒有問題了;
  9. 回到宿主機使用navicat遠程連接,此時會發現報連接超時,連接失敗,但是宿主機ping虛擬機能通;
  10. 懷疑是虛擬機的防火牆把5432端口牆住了,開始在虛擬機上用命令驗證;
  11. firewall-cmd --query-port=5432/tcp 返回no,說明就是虛擬機的5432端口沒有對外開放的原因;
  12. firewall-cmd --add-port=5432/tcp --permanent #永久添加5432端口例外
  13. firewall-cmd --reload #重啓防火牆,使修改生效
  14. firewall-cmd --query-port=5432/tcp 返回yes
  15. 回到宿主機,使用navicat連接虛擬機數據庫,此時能連接成功,問題解決。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章