jdbc 连接Mysql 遇到问题 5C

错误信息:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.io.EOFException

STACKTRACE:

java.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1895)
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:496)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:997)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1699)
at com.mysql.jdbc.Connection.(Connection.java:408)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:270)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at com.mingrisoft.DBConnection.getConnToMySql(DBConnection.java:63)
at com.mingrisoft.DBConnection.getConn(DBConnection.java:33)
at com.mingrisoft.Login.LoginCheck(Login.java:19)
at org.apache.jsp.admin.login_jsp._jspService(login_jsp.java:125)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at
连接信息:MySQLURL=jdbc:mysql://127.0.0.1:3306/webdb
MySQLName=root
MySQLPassword=password
===================已经试过的方法================
1、mysql数据库 等待时间调大
wait_timeout=31536000
interactive_timeout=31536000
2、重装mysql
3、驱动包版本没问题,已经换过多个版本
4、客户端和cmd都可以连接

7个回答

root授权,
mysql -uroot -ppassword
use mysql;
Grant all privileges on . to 'root'@'127.0.0.1' identified by 'password' with grant option;
flush privileges;

1.可以用ngrep 功能给抓包看一下吗?
执行命令:sudo ngrep -x -q -d lo0 '' 'port 3306'
首先如果你用的是127.0.0.1 那么网卡就应该是环网 lo0, 如果不是改为自己使用的网卡。

DRIVER = "com.mysql.jdbc.Driver";
URL = "jdbc:mysql://localhost:3306/bookstore";
USERNAME = "root";
USERPASSWORD = "root";

public static Connection getConnection() {
    try {
        Class.forName(DRIVER);
        try {

            if (connection == null || connection.isClosed()) {
                connection = DriverManager.getConnection(URL,USERNAME,USERPASSWORD);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    return connection;
}

//关闭资源

public static void closeAllConnection(ResultSet rs,PreparedStatement pstmt,Connection connection) {
    try {
        if (rs != null) {
            rs.close();
        }
        if (pstmt != null) {
            pstmt.close();
        }
        if (connection != null) {
            connection.close();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

可能是连接资源没了,即其他连接占用过多,或者连接池的参数配置大了

MySql 新版本的增加了一些特性,需要带入时区参数,参考如下,希望能帮助到您
jdbc:mysql://localhost:3306/UserDB?serverTimezone=GMT%2B8

1.查看mysql的账号密码是否正确,是否有对应用程序服务器的IP授权;
2.在应用程序服务器上安装mysql客户端,然后在mysql客户端上测试连接mysql服务器是否正常。

java.io.EOFException这个异常有点可疑,怎么觉得驱动不匹配

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!