mysql lost connection during query怎么解决
来源:网络收集 点击: 时间:2024-02-081、在服务器程序中经常会使用到Mysql数据库,服务器刚启动的时候是好好的,过一段时间就突然不响应了,检查日志会出现“lost connection during query”,从官网文档上看是因为链接丢失的原因引起的

2、也有可能是下面这种情况,是因为mysql查询的数据包过大,检查一下代码有没有一次性查询数据量过大的情况

3、第一种解决方法,是设置链接的超时值,把它延长
可以通过 show global variables like %timeout%;
可以查询出一些超时的变量
然后通过
set global varables wait_timeout=999999; //把这个超时值改大一点
如果要永久有效要在mysql的配置文件 my.ini里加上
wait_timeout=999999


4、如果是因为查询的数据过大,需要将数据包的最大值改大一点
show global variables like %packet%;
set global varables max_allowed_packet=10*1024*1024; //把这个超时值改大一点
如果要永久有效要在mysql的配置文件 my.ini里加上
max_allowed_packet=10*1024*1024


5、如果你能修改服务器的代码就好办了,下面这个函数就是相当于心跳包一样,配合超时的间隔,定时调用一次就可以了
int mysql_ping(MYSQL *mysql)
这个如果在链接丢失需要重链需要开启重链的选项才可以


6、还有另外一种保险的方法,就是链接丢失后,会接收到Mysql函数调用丢出的异常,判断是链接丢失的异常就重新链接
也就是reconnect,就相当于重新链接一样了,这个就相当麻烦一点
注意事项仅供学习参考
MYSQLMYSQL重连链接丢失重连版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_15114.html