5

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

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

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?

然后我检查了pg_hba.conf和postgresql.conf,它们是对的,如下:

host all all 192.168.1.0/24 md5
listen_addresses='*'

所以我认为我的配置是正确的,我之前连接成功,现在可能无法连接,谁能帮助我,谢谢?

4

3 回答 3

1

“No route to host”表示可能是网络问题,先ping 192.168.1.103;如果它工作,比“telnet 192.168.1.103 5432”看看端口是否正常。

而且不是pg_hba的问题。</p>

于 2012-06-25T06:50:09.550 回答
1

我在 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

由于这是一个测试环境,我刚刚禁用了数据库服务器上的防火墙,即

systemctl stop firewalld

从那以后它一直有效。对于生产环境,请让您的系统管理员将防火墙规则从客户端计算机添加到数据库服务器的端口 543x。

希望有帮助!

于 2018-03-21T11:08:51.353 回答
0

您可能需要运行:

 firewall-cmd --add-service=postgresql --permanent

这允许传入连接通过 Redhat\CentOS 中的操作系统防火墙,用于 postgresql 默认端口 5432。

参考。https://serverfault.com/a/789015/518039

于 2020-03-09T15:36:18.113 回答