Java程序连接MySQL数据库,会出现下面这个错误,错误信息如下所示:
Communications link failure due to underlying exception:文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
java.io.EOFException文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
产生这个问题的原因是当应用程序和数据库建立连接时候,如果超过了8个小时,应用程序语句不去访问数据库,数据库就会断掉连接。如果此时再次去访问数据库就会出现上面的错误信息。这就是“重名昭著”的MySQL八小时问题。文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
解决办法:文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
增大interactive_timeout值文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
set global interactive_timeout=288000文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
# vi /etc/my.cnf文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
[mysqld]文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
interactive_timeout=288000文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/文章源自运维生存时间-https://www.ttlsa.com/mysql/mysql-8-hours/
评论