【数据库】导致“mysql has gone away”的两种情况
来源:互联网 发布:jdk6 64位下载windows 编辑:程序博客网 时间:2024/04/29 08:43
导致“mysql has gone away”的两种情况 By Cruise 1. wait_timeout参数 在开发代理server时, 我使用了jdbc连接数据库,并采用长连接的方式连接数据库。开发完后的测试ok,但到了第二天测试时发现数据库操作失败,并抛出“mysql has gone away”的异常,主要原因是在mysql中有一个wait_timeout参数,默认设置为8个小时,当超过8个小时没有数据交互时,mysql服务器会主动关闭掉超时的连接,对应的mysql 错误码是2006。 这个时候需要业务侧做相关的处理,当发现有这种异常时需要重新连接数据库。其实在使用wbl mysql库时,wbl已经为我们做了这些,代码如下: if (mysql_real_query(_Mysql, sql.c_str(), sql.length())) { string err(sql.c_str(),0,128); int ret_errno = mysql_errno(_Mysql); Close(); if (ret_errno == 2013 || ret_errno == 2006){ // CR_SERVER_LOST,重连一次 Connect(); } 2. max_allowed_packet参数 当查询接口每秒钟的请求到达60个以上时,发现日志中出现了大量的“mysql has gone away”,但这个时候的数据库连接是正常的,这个时候就和例外一个mysql参数有关。show variables like 'max_allowed_packet'查看了下,发现max_allowed_packet参数设置的是1M,正是max_allowed_packet设置的太小导致了该问题,将max_allowed_packet设置为16M,问题彻底解决。
本文原创自无线技术运营空间: http://wireless.qzone.qq.com 及 http://blog.csdn.net/wireless_tech (专注无线技术运营——无线技术(操作系统/数据库/WEB前端/负载均衡/系统容灾/系统安全/短信接入/WAP接入/3G等)、无线业务运营、无线开放平台、统计分析(用户行为分析/数据挖掘)、CP合作,联系我们:1780551083@qq.com)
- 【数据库】导致“mysql has gone away”的两种情况
- 导入SQL导致"MySQL server has gone away"的解决方法
- mysql has gone away 的问题解决 --- ODBC 版本问题导致
- 【mysql】解决MySQL server has gone away问题的两种有效办法
- PHPMYADMIN 导入数据库的时候 MySQL server has gone away
- 解决MySQL server has gone away问题的两种有效办法
- 解决MySQL server has gone away问题的两种有效办法
- 解决MySQL server has gone away问题的两种有效办法
- MySQL has gone away
- mysql has gone away
- mysql has gone away
- MySQL server has gone away的几种解决办法
- mysql插入太多数据导致MySQL server has gone away
- MySQL server has gone away 的解决办法
- mysql server has gone away的原因
- mysql导入的时候has gone away
- 关于mysql has gone away的解决办法
- mysql has gone away的原因
- opencv学习
- opencv学习
- opencv学习
- OSS中心服务器集群方案
- 基于SOAP协议的WEB服务研究
- 【数据库】导致“mysql has gone away”的两种情况
- Firefox3中使用XMLHttpRequest(Ajax)发送二进制POST数据的简易调试法
- 动态映射bean 的内部赋值
- AndroidGUI10:DigitalClock和AnalogClock的常用技巧
- 经典java设计模式
- Installing Asterisk With Yum
- 移植心得
- Expect 学习笔记
- DevOps,不是一个传说!