【原因】
Mysql有连接自动过期机制,如果不配置,默认8小时过期,但springboot中使用的线程池自认为连接依然可用,但实际连接已失效。
【解决方案】
1、修改MySQL的配置文件my.cnf,参考如下配置:
bind-address=0.0.0.0
wait_timeout=3600【注:单位(秒)】
interactive_timeout=3600【注:单位(秒)】
connect_timeout=300【注:单位(秒)】
注释如下行:
#skip-networking
2、让JDK使用IPv4而不是IPv6
export _JAVA_OPTIONS="-Djava.net,preferIPv4Stack-true"
3、修改springboot连接池相关的配置文件
(1)在jdbc连接字符串后追加如下:
&autoReconnect=true&failOverReadOnly=false&maxReconnects=20
(2)确定连接池配置(根据自身连接池进行选择)
spring.datasource.initial-size=5
spring.datasource.m
上一篇:nginx禁用ip方法