解决mysql自动重连

方法(1)
连接mysql的语句写上autoReconnect=true ,不过这是针对mysql版本是5以前的。
重连的实现机制:
在这里插入图片描述
方法(2)
由于MySQL数据库的配置,引起的MySQL等待连接时间(wait_timeout)默认为8小时(28800s)。
设置interactive_timeout和wait_timeout,
msyql>set global interactive_timeout=288000;
msyql>set global wait_timeout=288000;
msyql>show variables like ‘%timeout’;

【注意1】如果设置wait_timeout=288000;实际上没有效果,还是默认为28800s。如果修改interactive_timeout的话wait_timeout也会跟着变,而只修改wait_timeout是不生效的。
【注意2】要在my.ini中加入
interactive_timeout=288000
wait_timeout=288000
不然也没有效果,真是坑!!
在这里插入图片描述
重启数据库

方法(3)
这里说下思路,其实就是模仿方法1,自己开一个线程,在线程中设置一个定时器和计数器,时间到了就查询下数据库。时间要小于8小时,查询目的就是使系统保存一个连接,因为8小时没有操作数据库就会断开连接了。
这就好比是长连接中的心跳包,使数据库一直保持一个连接的状态。

猜你喜欢

转载自blog.csdn.net/zy47675676/article/details/88849787