2012-07-26 49 views
0

我尝试与PostgreSQL数据库进行远程连接时出现问题。我在本地PC上工作,并在服务器上有数据库。在服务器中,我配置了pg_hba.conf和postgresql.conf。第一个文件是这样的:远程连接PostgreSQL时出错

# 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)连接时,我不能。问题是什么?

非常感谢你提前!

+2

46.18.24.0/22,您确定22?我期望在这里有24。再次将“信任”改为“md5”,你不相信没有正确密码的任何尝试。更改postgresql.conf并在更改后重新加载pg_hba.conf后是否重新启动PostgreSQL?错误信息也会很好,可以更容易地帮助你。 – 2012-07-26 07:47:27

+0

嘿试试这个'193.146.230.62 255.255.255.0'而不是这个'193.146.230.62/32' – PresleyDias 2012-07-26 07:56:45

+0

我试过193.146.230.62 255.255.255.0和193.146.230.62/32,但它没有连接 – 2012-07-26 09:22:43

回答

0

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

的,我建议你使用MD5而不是信任

0

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

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客户端上,检查是否安装了第三方“Internet安全性”或防火墙程序。如果只有Windows防火墙在那里没问题,那不会是问题。尽管如此,某些第三方防火墙阻止了即将发送的连接,并且可能是问题的根源。

检查看看您是否可以ping服务器。

如果这没有帮助,请编辑你的问题补充你错误消息和描述的原话,你是如何连接(PSQL,pgAdmin的-III,JDBC,等等)。

一旦你有连接工作,请务必将trust更改回md5并设置用户密码。使用trust模式运行的模式非常多:“嘿,任何人都可以访问我的网络,如果您愿意,可以窃取或销毁我的数据。”

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 
相关问题