Postgresql连接超时

当我连接到远程服务器上的psql

>psql -h {hostname} psql: could not connect to server: Connection timed out (0x0000274C/10060). Is the server running on host "{hostname}" (194.58.98.133) and accepting TCP/IP connections on port 5432? 

在服务器上:

 netstat -nlp | grep 5432 tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 29609/postmaster tcp 0 0 :::5432 :::* LISTEN 29609/postmaster unix 2 [ ACC ] STREAM LISTENING 2107633273 29609/postmaster /tmp/.s.PGSQL.5432 

服务器上没有iptables。 Ping服务器是成功的。

我做错了什么?

当我的pg_hba.conf或AWS安全组没有正确configuration时,我遇到了这种错误。 有很多关于如何解决这个问题的文档。 例如,你可以检查下面的链接 ,引用

错误: psql:无法连接到服务器:连接被拒绝服务器运行在主机“192.168.0.1”,并接受端口5432上的TCP / IP连接?

常见原因: postmaster或PostgreSQL的服务器守护进程没有运行或configuration不正确。

当您在大多数情况下收到这个错误,是因为没有将PostgreSQLconfiguration为允许TCP / IP连接,或者至less没有连接到您的特定工作站。 如果你已经证实postmaster确实在你正在尝试连接的主机上运行,​​那么这里是这个问题的常见原因列表:

  • postgresql.conf未设置为允许TCP / IP连接。 你会想看看listen_addressconfiguration参数。
  • postgresql.conf未设置为允许非标准端口号的连接。 要确定这个看portconfiguration选项。
  • PostgreSQL的访问configuration文件( pg_hba.conf )中的身份validation规则未设置为允许您的使用或IP地址连接到该数据库。 有关正确设置pg_hba.conf更多信息,请参阅官方文档 。
  • 确保没有防火墙,例如使本地系统不能build立到远程主机的连接的iptables

你应该看看postgresql.conf 。 要允许来自任何地方的连接,必须将listen_adresses设置为*:

 listen_addresses = '*' 

pg_hba.conf应该有这样一个条目,以允许从您的networking连接:

 # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 192.168.190.0/24 md5