2012-12-03 49 views
0

我試圖通過Java類連接到我的MySQL數據庫連接到我的SQL和我得到這些錯誤:無法通過Java

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

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
at java.lang.reflect.Constructor.newInstance(Unknown Source) 
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117) 
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:350) 
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2408) 
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2445) 
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2230) 
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813) 
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
at java.lang.reflect.Constructor.newInstance(Unknown Source) 
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399) 
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at TestConnection.main(TestConnection.java:14) 
Caused by: java.net.ConnectException: Connection timed out: connect 
at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) 
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) 
at java.net.AbstractPlainSocketImpl.connect(Unknown Source) 
at java.net.PlainSocketImpl.connect(Unknown Source) 
at java.net.SocksSocketImpl.connect(Unknown Source) 
at java.net.Socket.connect(Unknown Source) 
at java.net.Socket.connect(Unknown Source) 
at java.net.Socket.<init>(Unknown Source) 
at java.net.Socket.<init>(Unknown Source) 
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:259) 
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:300) 
... 15 more 

這裏是我的類代碼:(我刪除登錄信息)

import java.sql.*; 

public class TestConnection{ 
    public static void main(String[] args) 
    { 
    Connection conn = null; 
    String url = "jdbc:mysql://ip:3306/"; 
    String dbName = ""; 
    String driver = "com.mysql.jdbc.Driver"; 
    String userName = ""; 
    String password = ""; 
    try { 
     Class.forName(driver).newInstance(); 
     conn = DriverManager.getConnection(url+dbName,userName,password); 
     System.out.println("Connected to the database"); 
     conn.close(); 
     System.out.println("Disconnected from database"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    } 
} 

我會附上我的工作區的圖片,讓您可以確認我安裝correctlly的jdbc: enter image description here

編輯:我改變雷爾IP爲「IP」由於某種原因。忽略這一點。

+0

你真的輸入了'jdbc:mysql:// ip:3306 /'還是那個真正的地址? –

+0

你的網址應該包含像localhost這樣的服務器,我認爲'ip'不正確。試試'jdbc:mysql:// localhost:3306 /' –

+0

我刪除了那個信息,這個ip是一個reall ip。 –

回答

0

請檢查您的mysql服務器的IP地址。

你應該在你的代碼替換IP地址:

字符串URL = 「的jdbc:mysql的:// IP :3306 /」;

也嘗試ping你的mysql服務器的IP地址找到它網絡鏈接是好的?

查看更多MySQL Tutorials

感謝

+5

Roseindia.net是世界上最糟糕的Java(EE)相關資源之一,涉及到「最佳實踐」暴露在代碼片段整個網站。請不要將這個網站推薦給初學者,所有這些不好的做法都會讓他們感到困惑,並讓他們的代碼陷入災難。 – BalusC

+0

我現在看到你是roseindia.net本身的擁有者,並且正在嘗試垃圾郵件。請保存你的努力。 1)Stack Overflow旨在提供比roseindia.net更高質量的內容。 2)Stack Overflow上的所有外部鏈接都有一個'rel =「nofollow」'指示searchbots在排名中不遵循它們。此外,我建議閱讀[本文](http://balusc.blogspot.com/2008/06/what-is-it-with-roseindia.html)以瞭解roseindia提供的內容有多糟糕。網其實是。該文章發佈4年後其質量未發生變化。 – BalusC

2

可以從mysql的控制檯連接到MySQL數據庫在同一臺機器?看起來數據庫沒有啓動,或者Java程序無法連接到數據庫。您也可以嘗試在運行此程序的機器上安裝mysql瀏覽器,並確保數據庫從那裏連接。

+0

mysql數據庫正在與我構建的另一個網站一起工作,因此問題不能成爲服務器端。我想我會這樣做「你也可以嘗試在運行該程序的機器上安裝mysql瀏覽器,並確保數據庫從那裏連接。」謝謝。 –

+0

我可以連接,我想我的代碼或安裝jdbc的方式有問題。只是爲了確保jdbc安裝只是客戶端的權利? –

+0

只是客戶端連接.. Ofcourse不影響服務器端,除非你連接和寫程序來改變數據等。 – CodeDreamer