2013-04-28 102 views
0

我創建了java應用程序。它在localhost上運行。但無法連接到遠程服務器。 這裏是我的代碼無法從java應用程序連接到遠程mysql服務器

public Connection getDBConnection() throws Exception { 
    Connection conn = null; 
    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    conn = DriverManager.getConnection("jdbc:mysql://192.168.0.101:8081/mydb", "user", "password"); 
    return conn; 
} 

我使用JDBC驅動程序。

但我收到錯誤味精

Communications link failure 

成功發送到服務器的最後一個數據包爲0毫秒前。驅動程序尚未收到來自服務器的任何數據包。

我該如何解決這個問題。

+1

配置爲MySql服務器的[bind-address](http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_bind- address)是什麼? – 2013-04-28 09:03:31

+0

用戶和密碼就是例子。我會稍後改變。 – 2013-04-28 09:09:31

+0

你能用標準的mysql客戶端連接到遠程數據庫嗎? – Nifle 2013-04-28 09:12:50

回答

0
try { 
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
    String connectionUrl = "jdbc:sqlserver://localhost:1433;" + 
     "databaseName=dbname;user=1111;password=1111;"; 
    Connection con = DriverManager.getConnection(connectionUrl); 
    } catch (SQLException e) { 
     System.out.println("SQL Exception: "+ e.toString()); 
    } catch (ClassNotFoundException cE) { 
     System.out.println("Class Not Found Exception: "+ cE.toString()); 
    } 

更改數據庫名稱和用戶和密碼,你去

0

我認爲,服務器可能不被配置爲接受來自您的公共IP地址的請求。例如,在cPanel中,您需要「允許」從特定IP地址訪問MySQL。默認情況下只允許localhost。您可能需要聯繫服務器管理員並請求您的IP被允許訪問MySQL服務器。

您絕對不是身份驗證問題,否則您會收到身份驗證失敗響應。

您還可以嘗試從任何MySQL客戶端應用程序連接到您的服務器,例如MySQL Workbench,SQLYog等來測試問題。

同時檢查連接字符串中的MySQL服務器IP地址/名稱是否正確,因爲我們無法在此確認。檢查它與您的服務器管理員。

相關問題