com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.ConnectException
MESSAGE: Connection refused: connectSTACKTRACE:java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:209)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at note.dao.Dao.<init>(Dao.java:37)
at note.dao.Dao.getDao(Dao.java:51)
at note.NoteFrame.<init>(NoteFrame.java:39)
at note.NoteFrame$27.run(NoteFrame.java:799)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
** END NESTED EXCEPTION **Last packet sent to the server was 2 ms ago.
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2847)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at note.dao.Dao.<init>(Dao.java:37)
at note.dao.Dao.getDao(Dao.java:51)
at note.NoteFrame.<init>(NoteFrame.java:39)
at note.NoteFrame$27.run(NoteFrame.java:799)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

解决方案 »

  1.   

    补充一下  我用的是MYSQL的数据库  做的一个短信发送的程序  但是总是报这个错   一直都解决不了  如果谁遇到过这个问题  请帮下忙  谢谢!!
      

  2.   

    private static final String driver = "com.mysql.jdbc.Driver";
    private static String url = "jdbc:mysql:///test";// 数据库URL
    private static Connection conn = null;// 数据库连接
    private static Dao dao = null; private Dao() { // 禁止外界调用构造方法创建Dao对象
    try {
    Class.forName(driver);
    if (!dbExists()) {
    conn = DriverManager.getConnection(url + ";create=true");
    createTable();
    } else {
    conn = DriverManager.getConnection(url);
    }
    } catch (Exception e) {
    e.printStackTrace();
    JOptionPane.showMessageDialog(null, "数据库连接异常,或者本软件已经运行。");
    System.exit(0);
    }
    }
      

  3.   

     你那个URL没有用户名和密码哒嘛。所以的数据库连接是有问题的哈!
      

  4.   

    你的数据库连接是一个公共变量,也就是说 整个程序公用了一个connection ,你肯定在 某处关闭了连接,然后使用连接
      

  5.   

    Class.forName( "com.mysql.jdbc.Driver" );  cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName?useUnicode=true&characterEncoding=GBK", sUsr, sPwd );