今天遇到类似情况,mysql只是冷冷的说:Mysql服务器已经不在了。
我大概浏览过,主要是以下几个原因:
一种可能是发送的SQL语句太长,以至于超过了max_allowed_packet的大小。如果是这个原因,只需要修改my.cnf,增加max_allowed_packet的值即可。
还有一种可能是超时是某些原因造成的。例如,程序中使用Singleton来获取数据库连接。虽然多次连接数据库,但实际使用的是同一个连接,程序中两次数据库操作的间隔超过wait_timeout(显示状态可以看到这个设置),那么就可能有问题。最简单的处理方法是让wait_timeout变大。当然,你也可以在程序中时不时的敲击mysql_ping(),让mysql知道自己不是在孤军奋战。
解决MySQL服务器已经走了
1.应用程序(如php)长时间执行批量MYSQL语句。最常见的是新旧数据的收集或转换。
解决方案:
在my.cnf文件中添加或修改以下两个变量:
wait _ time out = 2880000
Interactive _ time out = 2880000
关于两个变量的具体描述,请google或者阅读官方手册。如果不能修改my.cnf,可以在连接数据库时设置CLIENT_INTERACTIVE,比如:
sql = & quotset interactive _ time out = 24 * 3600 & quot;;
mysql_real_query(...)
2.执行SQL,但SQL语句太大或包含BLOB或longblob字段。例如,图像数据的处理
解决方案:
在my.cnf文件中添加或修改以下变量:
Max_allowed_packet = 10M
(也可以根据需要设置大小)
Max_allowed_packet
参数用于控制其通信缓冲区的最大长度。
关键词:求解,或,max _ allowe
优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。本文链接:http://www.123down.cn/gonglue/227250.html