【发布时间】:2014-01-03 06:52:21
【问题描述】:
当尝试使用 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得到响应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到数据库服务器
- 使用相同的 pgAdmin 安装从同一远程服务器连接到在 Ubuntu 上运行 PostgreSQL 9.1 的另一台服务器没有问题
我被难住了。有谁知道还有什么可能是错的?是的,我确实记得在更改配置文件后重新启动服务器。我相信我已经阅读了有关该主题的所有其他帖子。
【问题讨论】:
-
您在尝试连接时是否在 PostgreSQL 服务器日志中看到任何内容?如果有疑问,请启动 Wireshark 并查看网络接口上发生了什么。
-
@CraigRinger 当我尝试连接时,PostgreSQL 服务器日志没有显示任何内容。运行
telnet xxx.xx.xxx.xx 5432也无法连接,而telnet xxx.xx.xxx.xx 22可以。在数据库服务器上运行telnet localhost 5432连接。不知道如何解释。仍在尝试了解 Wireshark 可以为我做什么,但我不需要在数据库服务器上安装它 - 据我所知,没有 Linux 版本。 -
听起来像防火墙。至于 Wireshark,是的,肯定有 Linux 版本!几乎每个发行版都有它的包装。
yum install wireshark-gnome在 Fedora 上;在 CentOS 上可能是一样的。 -
抱歉,我的服务器上没有 GUI。我现在进一步确认我可以从数据库服务器本身通过 ODBC 访问数据库。我认为这几乎可以将其缩小到防火墙问题。我会让熟悉 linux 防火墙的人来看看。
-
好主意。仅供参考,还有一个仅限命令行的wireshark。
标签: postgresql centos