Java连接MySQL数据库失败的一种可能原因

来源:互联网 发布:mac上可以玩王者荣耀吗 编辑:程序博客网 时间:2024/04/26 13:31

 Java连接MySQL数据库失败的一种可能原因

    今天写了个java访问MySQL数据库的程序,发现总是连接失败,报以下异常:

 Communication link failure: java.io.IOException, underlying cause: Unexpected end of input stream


** BEGIN NESTED EXCEPTION **

java.io.IOException
MESSAGE: Unexpected end of input stream

STACKTRACE:

java.io.IOException: Unexpected end of input stream
 at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:1096)
 at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:626)
 at com.mysql.jdbc.Connection.createNewIO(Connection.java:1562)
 at com.mysql.jdbc.Connection.<init>(Connection.java:491)
 at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
 at org.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java:304)
 at org.apache.tools.ant.taskdefs.SQLExec.execute(SQLExec.java:346)
 at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
 at org.apache.tools.ant.Task.perform(Task.java:364)
 at org.apache.tools.ant.Target.execute(Target.java:341)
 at org.apache.tools.ant.Target.performTasks(Target.java:369)
 at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
 at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
 at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
 at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
 at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
 at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
 at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)


** END NESTED EXCEPTION **

      后来在这里发现这是由于我使用的mysql的驱动程序有问题,换个驱动问题就解决了。

另外下面的异常也可能是这个原因:

java.sql.SQLException
MESSAGE: Communication link failure: java.io.EOFException, underlying cause: null

** BEGIN NESTED EXCEPTION **

java.io.EOFException

STACKTRACE:

java.io.EOFException
        at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1394)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1538)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1929)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:2251)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1772)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1619)


** END NESTED EXCEPTION **


        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1713)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1929)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:2251)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1772)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1619)

 

注意: 这篇文章说用户名和密码错误,应该不是这个问题的原因;

原创粉丝点击