无法通过pgAdmin连接到PostgreSQL数据库

所以,我安装了一个最小安装的Fedora 15来为Web应用程序创build一个服务器。 我也从pgrpms.org安装了PostgreSQL 9.1。 PostgreSQL安装顺利。 本地,我能够initdb,启动和psql中更改postgres密码。

现在,我已经在同一个子网上的Windows系统上安装了pgAdmin。 但是,我无法连接。

我编辑了/var/lib/pgsql/9.1/data/postgresql.conf来设置listen_addresses = '*' 。 我编辑了/var/lib/pgsql/9.1/data/pg_hba.conf来允许host all all 192.168.1.0/24 trust 。 我也重新启动后的变化( service postgresql-9.1 restart

pgAdmin中的错误是:无法连接到服务器:连接超时(0x0000274C / 10060)服务器是否运行在主机“192.168.1.110”上并接受端口5432上的TCP / IP连接?

答案是肯定的。 我没有安装防火墙,并禁用基于Windows的工作站上的防火墙。 我能ping和SSH到服务器。 tcpdump显示来自pgAdmin的端口5432上的连接尝试发生:

 [root@cobalion yum.repos.d]# tcpdump port 5432 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 07:28:44.014920 IP totodile.mcs.local.54067 > 192.168.1.110.postgres: Flags [S], seq 3554805012, w in 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0 07:28:47.023859 IP totodile.mcs.local.54067 > 192.168.1.110.postgres: Flags [S], seq 3554805012, w in 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0 07:28:53.019464 IP totodile.mcs.local.54067 > 192.168.1.110.postgres: Flags [S], seq 3554805012, w in 8192, options [mss 1460,nop,nop,sackOK], length 0 

我不知道下一步该怎么看? 表面上,似乎我应该能够连接。 有任何想法吗? 我可以以某种方式检查从“内部”正在运行的postgresql服务器加载了什么设置?

你的tcpdump几乎证实了iptables正在丢弃服务器端的数据包。 tcpdump在数据包被防火墙触及之前检查数据包。 如果防火墙没有丢弃数据包,并且postgres不工作,内核将RST连接尝试:

 07:39:14.878008 IP localhost.12343 > localhost.35259: Flags [R.], seq 0, ack 1980582372, win 0, length 0 

你会立即得到一个连接拒绝,而不是超时。

我唯一能想到的其他事情是,如果你在服务器上设置了一个荒谬的低连接限制,并且它已经满了。 我从来没有尝试过,看看会发生什么,虽然我有一种感觉,它会拒绝连接,而不是根据各种网站的行为,我所有时间运行数据库错误。 你可以检查postgresql的日志,看它是否提到连接尝试。