2015-01-01 108 views
0

我有一個私人vps,vps是ubuntu 12.04,使用zpanel for phpmyadmin,已經設置爲運行MySQL數據庫,但是當我嘗試使用Java連接到數據庫時,我無法接收消息:MySQL數據庫無法連接

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 

成功發送到服務器的最後一個數據包是0毫秒前。司機還沒有從服務器接收到任何數據包「

這是我的連接代碼:

package net; 

import java.sql.*; 

import javax.swing.JOptionPane; 

public class LoginDatabaseConnection { 
    Connection conn = null; 

    public static Connection ConnectDB() { 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection conn = DriverManager.getConnection("jdbc:mysql://vps35560.vps.ovh.ca/zadmin_login", "*masked*","*masked*"); 
      System.out.print("Connection Establish"); 
      return conn; 
     } catch (Exception e) { 
      JOptionPane.showMessageDialog(null, e); 
      System.out.println(e); 
      return null; 
     } 
    } 
} 
+0

你保持運行多久了? –

+0

啓動時顯示此錯誤。 –

+0

嘗試使用連接URI中的裸IP地址。 mysql驅動程序可能無法解析該主機名的地址(這可能是vpn傳輸配置的常見問題)。 – him

回答

0

也許這個問題的原因是數據庫連接被破壞了,這裏是你的問題的一些方法,
1.追加autoReconnect=true到數據庫連接的URL。
2.由於它的長wait_timeout8小時通過MySQL的默認,所以儘量修改配置文件my.ini使它甚至更長的時間,然後重新啓動MySQL服務。
3強烈建議使用數據庫源池,例如c3p0,dbcp,一些屬性如validateQuerytestOnBorrow對此問題相當有效。

+0

我已經添加了autoReconnect = true,但它仍然無法正常工作 The wait_timeout我相信我已經將它改爲24小時 我不知道這些是什麼,所以你可以爲我詳細闡述它們嗎?我還使用http://dev.mysql.com/downloads/connector/上的MySQL連接器。 j /如果有幫助 –

+0

只是嘗試其他兩種方式,第三種方式絕對適用於您的應用程序。@Mike Nguyen –

+0

我已經做了方式1和2,但我很困惑如何做3 –