-1

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

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

这成功执行。我还想连接到同一 LAN 中另一个系统上的 postgresql 数据库。当我用我想连接的另一个系统的 IP 替换 localhost 时,我得到一个异常。

请帮助我如何实现连接。

4

1 回答 1

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 连接。

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

于 2013-04-26T07:15:30.820 回答