Postgresql9.1突然无法连接到服务器:没有到主机的路由

Postgresql9.1突然无法连接到服务器:没有到主机的路由,postgresql,networking,Postgresql,Networking,这个问题是昨晚我使用Adempiere时发生的。我的adempiere服务器崩溃,它暗示没有数据库,这一切都是突然发生的,我不知道为什么 所以我检查了netstat-nlp | grep5432,它显示如下 tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN - tcp6 0 0 :::5432 :::*

这个问题是昨晚我使用Adempiere时发生的。我的adempiere服务器崩溃,它暗示没有数据库,这一切都是突然发生的,我不知道为什么

所以我检查了netstat-nlp | grep5432,它显示如下

tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      -               
tcp6       0      0 :::5432                 :::*                    LISTEN      -               
unix  2      [ ACC ]     STREAM     LISTENING     150917   -                   /var/run/postgresql/.s.PGSQL.5432
我尝试了psql-U postgres-h localhost,它连接成功,但是当我尝试
psql-U postgres-h 192.168.1.103时,它连接失败,显示如下:

psql: could not connect to server: No route to host
Is the server running on host "192.168.1.103" and accepting
TCP/IP connections on port 5432?
host all all 192.168.1.0/24 md5
listen_addresses='*'
然后我检查了pg_hba.conf和postgresql.conf,它们是正确的,如下所示:

psql: could not connect to server: No route to host
Is the server running on host "192.168.1.103" and accepting
TCP/IP connections on port 5432?
host all all 192.168.1.0/24 md5
listen_addresses='*'
所以我认为我的配置是正确的,我以前连接成功过,很可能现在无法连接,有人能帮我吗,谢谢?

“没有到主机的路由”意味着可能是网络问题,首先ping 192.168.1.103; 如果工作正常,则单击“telnet 192.168.1.103 5432”查看端口是否正常


这不是pg_hba的问题。

我在Centos 7上运行POstgres 9.5,也有同样的问题。从客户机,我可以ping和telnet到端口22。然后,我从客户机向端口5432执行了telnet,出现了以下错误

[pegusr@test ~]$ telnet  192.168.xx.x1 5432
Trying 192.168.56.111...
telnet: connect to address 192.168.xx.1x: No route to host
因为这是一个测试环境,所以我刚刚在DB服务器上禁用了firewalld

systemctl stop firewalld
从那以后,它一直在发挥作用。对于生产环境,请让系统管理员将防火墙规则从客户端添加到DB服务器的端口543x中

希望有帮助

您可能需要运行:

 firewall-cmd --add-service=postgresql --permanent
这允许通过postgresql默认端口5432的Redhat\CentOS中的操作系统防火墙进行传入连接


参考

是否有到主机的路线?当你
ping 192.168.1.103
或者甚至尝试telnet到它上面的端口
5432
时会发生什么?非常感谢,我刚刚ping 192.168.1.103,它失败了,所以我检查了我的ip,它变为192.168.1.101,我可以从这个地址连接到sql。我真傻,再次谢谢你!