2014-03-24 74 views
0

我鋪平了付費託管,並添加了我的數據庫。我試圖從我的Java桌面應用程序連接到這個在線數據庫,但是,我收到異常:通信鏈接失敗。如何從Java桌面應用程序連接到在線mysql數據庫

這裏是我的代碼:

public Kviz_DAO(){ 
    try{ 
     Class.forName("com.mysql.jdbc.Driver"); 
     konekcija = DriverManager.getConnection("jdbc:mysql://penal.ba:2082/mydatabasename?"+ 
       "user=mydbuser&password=mydbpassword"); 
    } 
    catch(Exception ex){ 
     ex.printStackTrace(); 
    } 
} 

誰能告訴我,我做錯了什麼。

+0

嘗試ping您的數據庫服務器。 – Jay

+0

確保你已連接到互聯網;) – Keerthivasan

+0

確保你的mysql服務器可用於互聯網和mydbuser得到prvilige連接數據庫 – locoyou

回答

0

MySQL的默認端口是3306.您確定您使用的主機名和端口是正確的嗎?

試試這個:

konekcija = DriverManager.getConnection("jdbc:mysql://penal.ba:2082/mydatabasename", mydbuser, mydbpassword); 

檢查:

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

可以連接使用MySQL管理員?

+0

我已將主機名更改爲cpanels共享IP地址,我不知道這是否我應該這樣做? – Nedimo

+0

我不知道你在說什麼。請澄清。也許嘗試通過MySQL管理員連接,並讓我們知道如果工作。 – duffymo

+0

我已經在我的cPanel中創建了mysql數據庫。我可以看到來自cPanel phpMyAdmin的數據庫和表,但我不知道如何從java桌面應用程序連接到它,我真的不知道我的主機的名稱是什麼,以及如何檢查它? – Nedimo

0

檢查,如果權限是在您的IP數據庫服務器。如果沒有,那麼GRANT許可爲IP

GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION; 

如果不工作,檢查FIREWALL

0

示例代碼:

String url1 = "jdbc:mysql://localhost:3306/"; 
String db1 = "userdb"; 
String driver1 = "com.mysql.jdbc.Driver"; 
String user1 = "root"; 
String pass1 = "sarakrish"; 
    try { 
      Class.forName(driver1).newInstance(); 
      con = DriverManager.getConnection(url1 + db1, user1, pass1); 

你應該試試這個方法:

String url = "jdbc:mysql://penal.ba:2082/"; 
String db = "mydatabasename"; 
String driver = "com.mysql.jdbc.Driver"; 
String user = "mydbuser"; 
String pass = "mydbpassword"; 
      Class.forName("com.mysql.jdbc.Driver"); 
      konekcija = DriverManager.getConnection(url+db,user,pass); 
0

下載的連接口J。將它添加到您的類路徑,並在代碼:

// This will load the MySQL driver, each DB has its own driver 
Class.forName("com.mysql.jdbc.Driver"); 
// Setup the connection with the DB 
connect = DriverManager 
    .getConnection("jdbc:mysql://remoteUri/database-name?" 
     + "user=user&password=userpw"); 
0
Connection konekcija = DriverManager.getConnection("jdbc:mysql://penal.ba:2082/mydatabasename?" + "user=mydbuser&password=mydbpassword"); 
//konekcija should be an object of Connection class.....I think :-p 
+1

請正確格式化您的答案並解釋一下,使其符合本網站的標準。 – AgataB

0

如果您無法連接到遠程MySQL數據庫,這是由於託管公司/服務器權限。您可以通過爲您的ip添加權限來解決此問題。

相關問題