当我连接到远程服务器上的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