2011-06-11 143 views
-1
com.mysql.jdbc.CommunicationsException: Communications link failure due to und 
lying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.ConnectException 
MESSAGE: Connection timed out: connect 

STACKTRACE: 

java.net.ConnectException: Connection timed out: 

connect 
     at java.net.DualStackPlainSocketImpl.connect0 

(Native Method) 
     at 

java.net.DualStackPlainSocketImpl.socketConnect 

(DualStackPlainSocke 
mpl.java:69) 
     at java.net.AbstractPlainSocketImpl.doConnect 

(AbstractPlainSocketImpl. 
va:316) 
     at 

java.net.AbstractPlainSocketImpl.connectToAddress 

(AbstractPlainSock 
Impl.java:177) 
     at java.net.AbstractPlainSocketImpl.connect 

(AbstractPlainSocketImpl.ja 
:164) 
     at java.net.PlainSocketImpl.connect 

(PlainSocketImpl.java:154) 
     at java.net.SocksSocketImpl.connect 

(SocksSocketImpl.java:390) 
     at java.net.Socket.connect(Socket.java:578) 
     at java.net.Socket.connect(Socket.java:527) 
     at java.net.Socket.<init>(Socket.java:424) 
     at java.net.Socket.<init>(Socket.java:240) 
     at 

com.mysql.jdbc.StandardSocketFactory.connect 

(StandardSocketFactory. 
va:173) 
     at com.mysql.jdbc.MysqlIO.<init> 

(MysqlIO.java:268) 
     at com.mysql.jdbc.Connection.createNewIO 

(Connection.java:2745) 
     at com.mysql.jdbc.Connection.<init> 

(Connection.java:1553) 
     at com.mysql.jdbc.NonRegisteringDriver.connect 

(NonRegisteringDriver.ja 
:285) 
     at java.sql.DriverManager.getConnection 

(DriverManager.java:620) 
     at java.sql.DriverManager.getConnection 

(DriverManager.java:200) 
     at Database.Connectivity.<init> 

(Connectivity.java:48) 
     at Form.SignIn.<init>(SignIn.java:64) 
     at Form.SignIn$5.run(SignIn.java:389) 
     at java.awt.event.InvocationEvent.dispatch 

(InvocationEvent.java:251) 
     at java.awt.EventQueue.dispatchEvent 

(EventQueue.java:649) 
     at 

java.awt.EventDispatchThread.pumpOneEventForFilters 

(EventDispatchTh 
ad.java:255) 
     at 

java.awt.EventDispatchThread.pumpEventsForFilter 

(EventDispatchThrea 
java:170) 
     at 

java.awt.EventDispatchThread.pumpEventsForHierarchy 

(EventDispatchTh 
ad.java:160) 
     at java.awt.EventDispatchThread.pumpEvents 

(EventDispatchThread.java:15 

     at java.awt.EventDispatchThread.pumpEvents 

(EventDispatchThread.java:14 

     at java.awt.EventDispatchThread.run 

(EventDispatchThread.java:136) 


** END NESTED EXCEPTION ** 



Last packet sent to the server was 0 ms ago. 
     at com.mysql.jdbc.Connection.createNewIO 

(Connection.java:2820) 
     at com.mysql.jdbc.Connection.<init> 

(Connection.java:1553) 
     at com.mysql.jdbc.NonRegisteringDriver.connect 

(NonRegisteringDriver.ja 
:285) 
     at java.sql.DriverManager.getConnection 

(DriverManager.java:620) 
     at java.sql.DriverManager.getConnection 

(DriverManager.java:200) 
     at Database.Connectivity.<init> 

(Connectivity.java:48) 
     at Form.SignIn.<init>(SignIn.java:64) 
     at Form.SignIn$5.run(SignIn.java:389) 
     at java.awt.event.InvocationEvent.dispatch 

(InvocationEvent.java:251) 
     at java.awt.EventQueue.dispatchEvent 

(EventQueue.java:649) 
     at 

java.awt.EventDispatchThread.pumpOneEventForFilters 

(EventDispatchTh 
ad.java:255) 
     at 

java.awt.EventDispatchThread.pumpEventsForFilter 

( EventDispatchThrea 
java:170) 
     at 

java.awt.EventDispatchThread.pumpEventsForHierarchy 

(EventDispatchTh 
ad.java:160) 
     at java.awt.EventDispatchThread.pumpEvents 

(EventDispatchThread.java:15 

     at java.awt.EventDispatchThread.pumpEvents 

(EventDispatchThread.java:14 

     at java.awt.EventDispatchThread.run 

(EventDispatchThread.java:136) 

回答

1

如果

  • MySQL服務器太忙或懸掛使用
  • 網絡不可達
  • MySQL服務器未啓動
  • 連接參數無效可能發生這種情況。 (主機/端口)

檢查是否可以從執行此代碼的服務器/機器telnet到mysql服務器的主機端口。如果主機和端口有效並且連接正常,則telnet將顯示空白屏幕。否則,它會顯示類似

連接到本地主機...無法打開連接到主機,在端口3306:連接失敗

1

一個ConnectionException有消息"connection timed out"可能發生,如果:

  • MySQL服務是緊張/掛起,
  • MySQL服務正在運行,但太忙,無法接受新的連接,
  • 防火牆是「黑洞」連接嘗試,或者
  • 一個網絡硬件或路由問題是「黑洞」連接企圖。

還有其他原因導致連接失敗,但它們會導致不同的異常或不同的消息。 (例如,您可以看到「連接被拒絕」,「未知主機」,「主機不可達」,「網絡不可達」...)