我正在尝试连接到Postgres SQL数据库。通常情况下,我可以通过简单地将链路连接:Java应用程序:连接到PostgreSQL数据库
test.ischool.testU.edu
哪里连接到phpPgAdmin的输入我的凭据,然后我可以连接到我的数据库,TESTDB,从身边选择它。
这里是我相关的Java代码:
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
String url = "jdbc:postgresql://test.ischool.testU.edu:5432/testDB";
String user = "testuser";
String pass = "testpassword";
Connection db = null;
try {
db = DriverManager.getConnection(url,user,pass);
} catch (SQLException e1) {
e1.printStackTrace();
}
我收到以下错误:
org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
我敢肯定,我做错了什么。假设我的代码是正确的(我敢肯定情况并非如此),要连接到数据库,是否需要在远程目录中有我的.jar文件,或者我可以在本地运行它?这有什么不同吗?
我已成功连接到使用下面的Python代码我的数据库(此代码插入到远程直接从那里运行):
conn = psycopg2.connect("dbname=testDB user=testuser password=testpassword")
您提到您直接连接使用* *的Python代码在服务器上。你能通过任何方法连接 - 例如* psql *客户端 - 通过你想运行Java代码的客户端服务器吗?听起来像这可能是一个网络问题,或者* Postgres *服务器配置问题,不会接受你连接的IP。 – khampson 2014-12-06 00:50:20
我可以使用phpPgAdmin进行连接。我的老师提到“它必须在课程数据库服务器上运行,客户端应用程序将无法连接到数据库”。我相信这就是为什么我无法让我的代码工作的原因。例如,我可以使用putty并键入“python test.py”,它将连接到数据库并执行任何操作。但是,我不确定如何以相同的方式运行Java .jar文件,即使它已经上传到远程目录。 – 2014-12-06 01:09:39
鉴于教师的局限性,正如@BohuslavBurghardt在他的一篇评论中提到的那样,你必须在服务器上运行它。有很多种方式通过命令行来运行* jar *的内容,但这主要取决于代码的结构。我会建议从[本教程]开始(https://docs.oracle.com/javase/tutorial/deployment/jar/run.html)。 – khampson 2014-12-06 01:15:22