我正在嘗試連接到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