当尝试使用pgAdmin 1.16.1从远程Windows服务器连接到PostgreSQL时,我得到了可怕的服务器没有收听'消息'无法连接到服务器:连接超时(0x0000274C / 10060)服务器是否在主机上运行" xxx.xx.xxx.xx"并接受端口5432'上的TCP / IP连接。
我在CentOS 6.4上运行PostgreSQL 9.3。这是我到目前为止所尝试的内容:
在postgresql.conf中,我已经设置了
listen_addresses = '*'
port = 5432
在pg_hba.conf中,我正在尝试访问数据库的服务器列为:
host all all xxx.xx.xxx.0/24 md5
getenforce
获得回复Disabled
)以防万一我将端口5432添加到IPTables
iptables -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
我已经使用psql进入postgresql并设置了密码(虽然我确信它已经设置正确)
ALTER USER postgres WITH PASSWORD '*************';
键入netstat -an
会将这些引用提供给端口5432(不确定它们是否相关):
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN
tcp 0 0 :::5432 :::* LISTEN
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 677454 /tmp/.s.PGSQL.5432
我可以从远程服务器ping到数据库服务器
我很难过。有没有人知道更多可能是错的?是的,我确实记得在更改配置文件后重启服务器。我相信我已经阅读了关于这个主题的所有其他帖子。
答案 0 :(得分:2)
也许你忘了添加OUTPUT规则?
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d xx.xx.xx.xx --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s xx.xx.xx.xx --sport 5432 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
xx.xx.xx.xx - your server IP