如何使用Java远程连接到PostgreSQL
我一直在从事一个项目,该项目要求我们连接到PostgreSQL数据库。我能够使用本地IP(即192.168.1.145)通过代码在本地连接到PostgreSQL数据库,现在我用公共IP替换了本地IP,这会给我带来错误: 下面是我用来连接数据库的代码如何使用Java远程连接到PostgreSQL,java,jdbc,Java,Jdbc,我一直在从事一个项目,该项目要求我们连接到PostgreSQL数据库。我能够使用本地IP(即192.168.1.145)通过代码在本地连接到PostgreSQL数据库,现在我用公共IP替换了本地IP,这会给我带来错误: 下面是我用来连接数据库的代码 private static final String DRIVER = "org.postgresql.Driver"; //private static final String URL = "jdbc:postgresql://192.168.
private static final String DRIVER = "org.postgresql.Driver";
//private static final String URL = "jdbc:postgresql://192.168.1.145:5432/ResumeDatabase";
private static final String URL = "jdbc:postgresql://71.555.555.555:5432/ResumeDatabase";
private static final String USERNAME = "defaultuser";
private static final String PASSWORD = "password";
private static Connection getConnection() throws Exception {
Class.forName(DRIVER);
Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
return conn;
}
以下是我得到的错误:
Adding a resume
org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
ID ----------- 0
Added Resume
at
org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:136)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125)
at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
at org.postgresql.jdbc3.Jdbc3Connection.<init>(Jdbc3Connection.java:24)
at org.postgresql.Driver.makeConnection(Driver.java:393)
at org.postgresql.Driver.connect(Driver.java:267)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.ssati.resumeformatter.data.dao.ResumeDAO.getConnection(ResumeDAO.java:247)
at com.ssati.resumeformatter.data.dao.ResumeDAO.addResume(ResumeDAO.java:105)
at com.ssati.resumeformatter.data.dao.ResumeDAO.main(ResumeDAO.java:318)
Caused by: java.net.ConnectException: Operation timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:189)
at org.postgresql.core.PGStream.<init>(PGStream.java:62)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:76)
... 11 more
添加简历
org.postgresql.util.PSQLException:连接被拒绝。检查主机名和端口是否正确,邮政局长是否接受TCP/IP连接。
ID------------0
新增简历
在
org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:136)
位于org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
位于org.postgresql.jdbc2.AbstractJdbc2Connection。(AbstractJdbc2Connection.java:125)
位于org.postgresql.jdbc3.AbstractJdbc3Connection。(AbstractJdbc3Connection.java:30)
位于org.postgresql.jdbc3.Jdbc3Connection(Jdbc3Connection.java:24)
位于org.postgresql.Driver.makeConnection(Driver.java:393)
位于org.postgresql.Driver.connect(Driver.java:267)
位于java.sql.DriverManager.getConnection(DriverManager.java:582)
位于java.sql.DriverManager.getConnection(DriverManager.java:185)
在com.ssati.resumeformatter.data.dao.ResumeDAO.getConnection(ResumeDAO.java:247)上
在com.ssati.resumeformatter.data.dao.ResumeDAO.addResume(ResumeDAO.java:105)上
位于com.ssati.resumeformatter.data.dao.ResumeDAO.main(ResumeDAO.java:318)
原因:java.net.ConnectException:操作超时
位于java.net.PlainSocketImpl.socketConnect(本机方法)
位于java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
位于java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
位于java.net.socksocketimpl.connect(socksocketimpl.java:432)
位于java.net.Socket.connect(Socket.java:529)
位于java.net.Socket.connect(Socket.java:478)
位于java.net.Socket(Socket.java:375)
位于java.net.Socket(Socket.java:189)
位于org.postgresql.core.PGStream(PGStream.java:62)
位于org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:76)
... 还有11个
谢谢 您是否已确保将数据库配置为允许使用这些凭据从目标计算机进行远程连接?这里的数据库配置似乎非常相关……您会遇到什么错误?pg_hba.conf的内容是什么?@user1563793:对于SSL,您必须向URL添加
?SSL=true
。虽然我的第一个猜测是,操作超时
表示防火墙配置错误。71.555.555.555
:这是有效的IP地址吗?555如何表示无符号字节?