0

当我尝试使用 PostgreSQL 数据库进行远程连接时遇到问题。我在本地 PC 上工作,我在服务器中有数据库。在服务器中,我同时配置了 pg_hba.conf 和 postgresql.conf。第一个文件如下所示:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             46.18.24.0/22           trust
host    all             all             193.106.180.0/22        trust
host    all             all             193.146.230.62/32       trust

第二个:

listen_addresses = '*'                  
port = 5432             
max_connections = 100

我确定在服务器端打开了端口 5432。

但是,当我尝试通过 pgAdmin III 从我的 PC (193.146.230.62) 连接时,我不能。问题可能是什么?

非常感谢您!

4

4 回答 4

2

服务器上是否有防火墙,或者 PC 上是否有第三方附加防火墙?

如果服务器是 Linux,请检查sudo iptables -L那里是否有任何东西。默认的无防火墙配置是:

Chain INPUT (policy ACCEPT) target     
prot opt source               destination         

Chain FORWARD (policy ACCEPT) target     
prot opt source               destination         

Chain OUTPUT (policy ACCEPT) target     
prot opt source               destination

在 Windows 服务器上,检查 Windows 防火墙以确保postgres.exe允许侦听和/或端口已打开。

在 Windows 客户端上,检查是否安装了第 3 方“互联网安全”或防火墙程序。如果只有 Windows 防火墙在那里就可以了,那不会是问题。但是,一些第 3 方防火墙会阻止传出连接,这可能是您问题的根源。

检查服务器是否可以ping

如果这没有帮助,请编辑您的问题以添加您收到的错误消息的确切文字以及您如何连接的描述(psql、PgAdmin-III、JDBC 等等)。

连接正常后,请确保更改trustmd5并设置用户密码。以trust模式运行几乎会说“嘿,任何可以进入我网络的人,如果你愿意,可以来窃取或破坏我的数据”。

于 2012-07-26T09:17:27.153 回答
0

详细请看 PostgreSQL 的日志,可能是你应该设置 $PGDATA/postgresql.conf 文件的参数 log_connections=on 和 log_disconnections=on

顺便说一下,我建议你使用md5认证方式而不是trust。</p>

于 2012-07-26T08:14:17.777 回答
0

如何尝试更改 pg_hba.conf。只需将 127.0.0.1/32 更改为 0.0.0.0/0

# IPv4 local connections:
host    all             all             0.0.0.0/0               md5
host    all             all             46.18.24.0/22           trust
host    all             all             193.106.180.0/22        trust
host    all             all             193.146.230.62/32       trust
于 2014-12-12T11:02:44.007 回答
0

按照 PresleyDias 的建议,尝试更改listen_addresses为您的服务器的本地 ip 并/24在 中指定掩码。pg_hba.conf

于 2012-07-26T08:44:24.623 回答