MySQL为什么莫名其妙的断开连接以及解决方案


解决方法
1.autoReconnect
这个参数表示在mysql超时断开连接后会自动重新连接

配置的话,只需要在连接mysql的语句写上autoReconnect=true


下面是MySQL官网对autoReconnect的解释:

同时可以看到官网不推荐使用这个参数,因为它有一些副作用

具体介绍下:

原有连接上的事务将会被回滚,事务的提交模式将会丢失
原有连接持有的表的锁将会全部释放
原有连接关联的会话Session将会丢失,重新恢复的连接关联的将会是一个新的会话Session
原有连接定义的用户变量将会丢失
原有连接定义的预编译SQL将会丢失
原有连接失效,新的连接恢复后,MySQL将会使用新的记录行来存储连接中的性能数据

wait_timeout指的是mysql在关闭一个非交互的连接之前所要等待的秒数

interactive_time 指的是mysql在关闭一个交互的连接之前所要等待的秒数

对于交互和非交互连接,说得直白一点就是,通过mysql客户端连接数据库是交互式连接,通过jdbc连接数据库是非交互式连接。

配置方法:

1.会话方式

msyql> set global wait_timeout=2880000;
msyql> set global interactive_timeout=2880000;
1
2
这种方式只对当前会话生效

2.修改配置文件方式

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

wait_timeout=2880000

wait_timeout=2880000;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM