Postgresql 连接超时

Cly*_*yde 8 postgresql centos database-connection

当我连接到远程服务器上的 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?
Run Code Online (Sandbox Code Playgroud)

在服务器上:

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
Run Code Online (Sandbox Code Playgroud)

服务器上没有 iptables。ping 服务器成功。

我做错了什么?

小智 6

pg_hba.conf当我的安全组或 AWS 安全组未正确配置时,我收到了此类错误。有很多关于如何解决此问题的文档。例如,您可以检查以下内容,引用自此链接

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

常见原因: postmaster 或 PostgreSQL 的服务器守护进程未运行或配置不正确。

大多数情况下,当您收到此错误时,是因为没有将 PostgreSQL 配置为允许 TCP/IP 连接,或者至少不允许来自您的特定工作站的连接。如果您已验证该程序postmaster确实在您尝试连接的主机上运行,​​则以下是此问题的常见原因列表:

  • postgresql.conf未设置为允许 TCP/IP 连接。您需要查看listen_address配置参数。
  • postgresql.conf未设置为允许非标准端口号上的连接。要确定这一点,请查看port配置选项。
  • PostgreSQL 的访问配置文件 ( pg_hba.conf) 中的身份验证规则未设置为允许您的用户或 IP 地址连接到该数据库。有关正确设置的更多信息,请参阅官方文档pg_hba.conf
  • 确保没有防火墙,例如iptables阻止本地系统建立与远程主机的连接的防火墙