Q: How can I solve the problem of connection timeout after mysql is idle for 8 hours?
A:When an application establishes a connection with a database, if the connection lasts for more than 8 hours, the application will not access the database, and the database will be disconnected. Then, an exception is thrown when you access the service again. The exception is as follows:
Reference content is as follows:
Communications link failure due
Underlying exception:
** Begin nested exception **
Java. io. EOFException
STACKTRACE:
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)
...
The general solution is to add the "autoReconnect = true" option to the database connection string. However, this is only valid for versions earlier than MySQL 4. It is invalid in the latest mysql. In fact, there is also a simple way to solve this problem, that is, to modify the mysql startup parameters. By default, the timeout time of mysql is 28800 seconds, which is exactly 8 hours. You can add a value of 0.
You can also add this parameter to the "my. ini" file.
Mysqld-nt -- default-table-type = innodb -- interactive_timeout = 288000
With the above methods, we can effectively solve the connection timeout problem and improve the efficiency of the mysql database. Why not?