mysql八小时问题

Java程序连接MySQL数据库,会出现下面这个错误,错误信息如下所示:

Communications link failure due to underlying exception:

java.io.EOFException

at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)

产生这个问题的原因是当应用程序和数据库建立连接时候,如果超过了8个小时,应用程序语句不去访问数据库,数据库就会断掉连接。如果此时再次去访问数据库就会出现上面的错误信息。这就是“重名昭著”的MySQL八小时问题。

解决办法:

增大interactive_timeout值

set global interactive_timeout=288000

# vi /etc/my.cnf

[mysqld]

interactive_timeout=288000