pgAdmin3 连接问题

Posted

技术标签:

【中文标题】pgAdmin3 连接问题【英文标题】:pgAdmin3 connection problems 【发布时间】:2012-06-25 16:02:55 【问题描述】:

我最近正在使用 VMware Workstation 8 设置和运行 Windows 2008 r2 服务器。

我正在使用 Postgresql 9.1 运行 Centos 6.2 虚拟 Linux 机器。本地似乎一切正常,我可以通过桥接网络连接到 CentOS 机器。

我已按照David Ghedini's 演练设置 Postgresql 9.1。所以我能够启动一个putty会话窗口,以root身份登录并启动psql shell并以postgres用户身份发出语句。我的问题是我无法从 Windows 7 客户端使用 pgAdmin III 进行连接。我已更新/var/lib/pgsql/9.1/data/postgresql.conf 以启用listen_addresses '*' 等。

谁能给我一些关于找出我的错的提示。确保在 Windows 服务器上也禁用了 Windows 防火墙。

pgAdmin III 客户端报告;

'服务器不听'

服务器不接受连接:连接库报告

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

这是添加的pg_hba.conf 文件条目:

#TYPE DATABASE   USER   ADDRESS          METHOD
host  all        all    192.168.1.0/24   trust

并添加了 iptables 文件条目:

-A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 192.168.1.26 --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -s 192.168.1.26 --sport 5432 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

【问题讨论】:

更新conf文件后是否重启了postgresql服务?另外, pg_hba.conf 可能是给您带来麻烦的原因。 here's a copy that i use for my dev postgres instance。它非常允许,但应该适合你的开发人员。 除此之外,请发布 pgAdminIII 给出的错误 嗯..该死的,确信它一定是pg_hba.conf主机条目。我按照您的语法添加了一个主机所有所有所有信任条目,重新加载了 conf 文件,但仍然收到“服务器不听”消息。等待连接开始困扰我! 天啊!那么问题最有可能在 AndrewSmith 的第二个链接中得到解决。检查虚拟机上的 IPTables/防火墙 @MaRK 我想我可能处于同样的境地。在我的 VMware 托管的 Windows 客户端上,我无法通过我的 Mac 托管的 localhost 与 PG 建立任何连接。我做了你在问题/答案中所做的所有事情。但我很好奇您实际上是如何从 Windows 测试 PG 连接的。你的 Windows 和 Mac 客户端都安装了 PG 吗? 【参考方案1】:

你需要调整pg_hba.conf:

http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html

添加自己的主机和相应用户后,重新启动 postgresql 服务器,希望您可以连接。

您可能还需要在网络上启用它的端口: http://www.cyberciti.biz/tips/postgres-allow-remote-access-tcp-connection.html

【讨论】:

如果是 pg_hba.conf 文件,我认为用户会收到不同的错误消息。 Andrew,我已按照提供的两个链接中的指南进行操作,并更新了 OP 以显示这些条目。我认为 iptables 条目会提供解决方案,但不幸的是我仍然无法连接 pgAdmin III 并收到相同的错误。 好的,我现在已连接!哇哦!好东西。我重新启动了服务,然后就可以连接了。非常感谢,我确信唯一出色的是 iptables 配置。无论如何,非常感谢。【参考方案2】:

服务器是否在主机“192.168.1.26”上运行并接受 TCP/IP 端口 5432 上的连接?

检查服务器是否具有该 IP 地址。检查是否有postgres 进程正在运行。使用 netstat 确认服务器正在侦听端口 5432。

【讨论】:

是的,服务器肯定在那个 IP 上,因为我可以 ssh 到它并登录。正如最初所说,我还通过在 psql shell 中以 postgres 用户身份执行命令来验证 postgres 是否正在运行。有趣的是,当我运行 netstat 命令时,我似乎没有看到任何提及端口 5432。 使用psql 登录并输入show port;show listen_addresses;。也许某些东西覆盖了您认为正在使用的设置,或者您需要重新启动服务器。此外,VM 是否有可能实施某种防火墙?【参考方案3】:

我也有同样的问题。我禁用了我所有的第三方防病毒软件和防火墙,然后再次重新安装 PostgreSQL,它现在工作正常...... :)

【讨论】:

【参考方案4】:

确保允许 PostgreSQL 服务器通过防火墙:

在服务器机器上,转到

控制面板 > 系统和安全 > Windows 防火墙 > 允许应用 通过 Windows 防火墙

滚动浏览允许的应用和功能,确保选中“PostgreSQL 服务器”。

【讨论】:

在 centos 上【参考方案5】:

可能是防火墙问题,请检查

systemctl status firewalld.service

您可以通过以下方式禁用它:

systemctl stop firewalld.service
systemctl disable firewalld.service

【讨论】:

【参考方案6】:

除了上面的好答案之外,在实施所有防火墙规则和配置文件更改后,它仍然没有连接到我主机的 IP 地址。然后我意识到我已经在安装了我的 postgres db 的主机上本地安装了 pgadmin。我不需要使用主机的外部 IP 地址,我只需要在 pgadmin 连接过程中连接到“localhost”。非常令人沮丧,但有道理。所以,如果你

从与您的 postgres 数据库相同的服务器托管 pgadmin 已排除防火墙不妨碍您 已排除任何安全组没有阻止您 已经对配置文件 pg_hba.conf 和 postgresql.conf 进行了足够的修改

那么也许...只是也许,尝试连接到“localhost”或“127.0.0.1”。

值得一试!

【讨论】:

【参考方案7】:

我遇到了同样的问题:

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

也许您需要将您的反向ip设置为白名单:26.1.168.192

【讨论】:

【参考方案8】:

您还应该在防火墙上允许端口 5432。

centos 8 上的示例:

sudo firewall-cmd --zone = public --add-port = 5432 / tcp --permanent

【讨论】:

以上是关于pgAdmin3 连接问题的主要内容,如果未能解决你的问题,请参考以下文章

适用于 Windows 的 pgadmin3 深色主题?

相当于 PgAdmin3 中的“描述表”

我可以从命令行启动 pgAdmin3 吗?

pgadmin3

安装配置postgreSQL+pgcli+pgadmin3

把excel数据导入pgAdmin3