您当前位置:优侠库 > 资讯攻略 >
来源:未知
2019-09-08 11:31:22 浏览: 分类:资讯攻略

解决MySQL server has gone away

今天遇到类似情况,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

攻略资讯
安卓软件