当尝试使用pgAdmin 1.16.1从远程
Windows服务器连接到PostgreSQL时,我得到可怕的“服务器不监听”消息,“无法连接到服务器:连接超时(0x0000274C / 10060)服务器是否在主机上运行“xxx.xx.xxx.xx”并接受端口5432’上的TCP / IP连接.
我在CentOS 6.4上运行PostgreSQL 9.3.这是我到目前为止所尝试的:
>我可以使用psql –username = postgres在本地访问数据库.数据库在那里,它正在运行,我可以查询它
>在postgresql.conf中,我已经设置好了
listen_addresses = '*'
port = 5432
>在pg_hba.conf中,我有一个我试图访问数据库的服务器列出如下:
host all all xxx.xx.xxx.0/24 md5
> SELinux已关闭(getenforce获取响应已禁用)
>以防万一我将端口5432添加到IPTables
iptables -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
>我已经使用psql进入postgresql并设置密码(尽管我确信它已经设置正确)
ALTER USER postgres WITH PASSWORD '*************';
>键入netstat -angives对端口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到数据库服务器
>使用相同的pgAdmin安装从同一远程服务器连接到Ubuntu上运行PostgreSQL 9.1的另一台服务器没问题
我很难过.有没有人知道更多可能是错的?是的,我确实记得在更改配置文件后重启服务器.我相信我已经读过关于这个主题的所有其他帖子.
最佳答案 也许你忘了添加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