如何使用jdbc type 4驱动程序连接到其他系统db

时间:2013-04-26 05:50:48

标签: java postgresql jdbc

我有一个JDBC程序,它连接到我的本地系统postgresql DB。

Class.forName("org.postgresql.Driver");
Connection con=DriverManager.getConnection("jdbc:postgresql://localhost:5432/LOCATIONS_INFO","postgres","password");
System.out.println("Connection Created");

这成功执行。我还想连接到同一局域网中另一个系统上的postgresql数据库。当我用我要连接的其他系统的IP替换localhost时,我得到一个例外。

请帮我看看如何实现连接。

1 个答案:

答案 0 :(得分:1)

我认为您的配置或网络可能有问题。首先检查另一个系统上的PostgreSQL是否正在所有网络接口上的端口5432上进行侦听。您可以使用netstat进行检查(当然您必须在数据库服务器的控制台上运行它):

[mn@dbtest ~]# netstat -lnp | grep 5432
tcp   0  0 0.0.0.0:5432   0.0.0.0:*   LISTEN   8484/postmaster

(如果PostgreSQL适用于Windows,我建议使用TCPView实用程序)

0.0.0.0:5432告诉我们PostgreSQL正在端口5432上侦听所有网络接口。

现在您应该检查PostgreSQL配置是否允许来自您的IP的连接。 PostgreSQL使用pg_hba.conf文件来允许/拒绝来自不同地址的连接。例如,在我的网络条目中:

host  all all 169.0.1.0/24   trust 

允许所有169.0.1.*台机器与PostgreSQL连接。

如果此类配置允许您连接,请检查计算机和数据库服务器上的防火墙。