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 连接问题的主要内容,如果未能解决你的问题,请参考以下文章