2013-01-09 89 views
0

我正在用Java編寫程序,它連接到MySQL數據庫。由於第一類是單靜態方法返回java.sql.Connection。它被調試和連接工作後,我再也不會碰它。而前幾天,我發現我的程序返回此錯誤:。Java2MySQL>由於基礎異常再次導致通信鏈路故障

com.mysql.jdbc.CommunicationsException:
Communications link failure due to underlying exception

BEGIN NESTED EXCEPTION
com.mysql.jdbc.CommunicationsException

MESSAGE:
Communication link failure due to underlying exception:

BEGIN NESTED EXCEPTION
java.io.EOFException MESSAGE: Can not read response from server. Expected 4 bytes, read 0 before connection was unexpectedly lost.

STACKTRACE:

...

  • 我安裝了MySQL v服務器62年5月1日
  • 我使用MySQL/J接口v 5.0.8(從下載mysql.com)
  • 也是我把在類路徑在NetBeans sqljdbc4.jar

一點我不能理解的是,其實我並沒有在我的本地更改用戶名和密碼,因爲我創造了我的數據庫。我改變的只是:在表格中添加更多表格和更改列,但不會觸發此錯誤。而我對我的項目所做的事情是我將字符集從UTF-8更改爲UTF-16,但我想這幾乎不會影響我的連接方法。

如果我改變連接器,並把在類路徑接口v 5.1.22返回錯誤:(使用密碼:YES)拒絕用戶「根@本地」
訪問
連我宣佈對用戶的所有特權根。

回答

1

我會建議如下:

  1. Firstly confirm if network is fine between two servers: a. ping from your server to your database server. b. use MTR unix tool to ensure connectivity between two servers.
  2. Are you using connection pool ? If yes, then try to restart the server. Probably few of the connections in your connection pool are in closed state.

讓我們首先解決第一個問題。其他問題用戶「root @ localhost」拒絕訪問(使用密碼:YES)是一個獨立的問題,我們稍後可以討論。

0

我忘了告訴我正在使用Win 7機器。感謝您的回覆。我在我的池中設置了更多的連接,並且它不起作用(我有大約10個數據庫連接,當應用程序啓動並且池接受15時)。
但是!!
我沒有忘記我把項目的編碼從UTF-8(自從我開始以來)改爲Unicode(因爲我想在使用東歐字母的JOptionPane.showMessageDialog();窗口中,因爲它是我的母語)。爲了測試,我將charset更改爲UTF-8,並且我的連接再次運行。老實說...我不明白這一點。

相關問題