The client was disconnected by the server because of inactivity解决方案

在解决这个问题之前,我们需要了解两个参数:

  • wait_timeout: 访问等待一个周期时长,比如这个wait_timeout默认是8个小时,如果两次访问的时间差大于这个值,就会报连接超时的错误。这个是mysql设置的一个connection的空闲时间,超过这个时间,mysql就会主动断了这个connection,而连接池并不知道该connection以及失效,如果这时Client请求connection,DBCP将该失效的connection提供给client,将会造成异常。
  • interactive_timeout: 服务器关闭交互式连接前等待活动的秒数。

在线程启动时,根据全局wait_timeout或全局interactive_timeout值初始化会话wait_timeout值。

  1. 打开mysql控制台,输入: show variables like ‘%timeout%’,查看和连接时间有关的MYSQL系统变量。
    The client was disconnected by the server because of inactivity解决方案_第1张图片
    2.解决办法
    ①:在连接数据库时添加上autoReconnect=true使得连接自动恢复。(有时无效)
    ②:
set  global  interactive_timeout=31536000;(值看情况)
show variables like '%timeout%';

注:当只改wait_timeout是不能改interactive_timeout,但若只改interactive_timeout, wait_timeout也会跟着改。

你可能感兴趣的:(mysql,mysql,服务器,数据库)