【mysql】连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案

时间:2021-06-02 05:01:55

1. 增加 MySQL 的 wait_timeout 属性的值。 

修改 /etc/mysql/my.cnf文件,在 [mysqld] 节中设置:

# Set a connection to wait 8hours in idle status. 
wait_timeout =86400 

将这2个参数设置为24小时(60*60*24=604800)即可。 
set interactive_timeout=604800; 
set wait_timeout=604800; 

2. 减少连接池内连接的生存周期,使之小于上一项中所设置的 wait_timeout 的值。 

在 Spring 的配置文件中: 

<bean id="dataSource" 
class="com.mchange.v2.c3p0.ComboPooledDataSource"> 
<property name="maxIdleTime"value="${cpool.maxIdleTime}"/> 
<!--other properties --> 
</bean> 
 
3、autoReconnect=true(此方法只支持mysql5.0以下的版本)

连接数据库的时候加上autoReconnect=true这个参数:

jdbc:mysql://localhost:3306/accounant?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true