mysql不能启动报error2013错误怎么解决?

发布时间:2019-08-08编辑:脚本学堂
本文介绍了mysql不能启动报error2013错误的解决方法,在查询mysql中的数据库,或修改比较大的表时会出现这种情况,这里分享几种解决方法,大家参考下。

mysql不能启动报error2013错误

mysql启动时报如下错误:
mysql lost connection to server during query

原因分析:
在查询mysql中的数据库,或修改比较大的表时会出现这种情况;

方案1,在mysql配置文件[myslqd]下面添加一行设置skip-name-resolve.需要重启mysql服务.

方案2,在hosts文件内添加: ip与主机名的映射关系,如: 127.0.0.1 localhost. 这种方式不用重启mysql服务.

三个层面上解决这个问题:
1. 代码层面,需要在php数据库连接处增加:
 

复制代码 代码示例:
if( in_array(mysql_errno(), array(2006, 2013))){
mysql_close();
mysql_connect(...);
mysql_query(...);
}
 

即遇到2006,2013错误就重新连接一下mysql。(www.jb200.com 脚本学堂)

2,mysql层面,需要配置一些参数 my.cnf (此方法适用于linux下的环境)
 

wait_timeout = x 超时时间 如600秒
max_allowed_packet = y 最大允许数据量
 

适当增加x,y的值。

3,出现此问题的不是所有例句而是单个表,请先修复表一般都能解决这类问题。
mysql error 2013: lost connection to mysql server during query
错误代码: 1153 - got a packet bigger than 'max_allowed_packet' bytes

解决方法:
修改mysql.ini(网上都说是这个文件,找了n久终于知道在哪里了,我的目录是在 d:mysql_datamysql server 5.5 在mysql_data文件夹下)文件添加如下代码即可
max_allowed_packet=500m

如果还不行,就修改f:programmysql5.0my-huge.ini 中的max_allowed_packet=16m 把16改为500
把mysql配置所提供的最大允许内存改大了毕竟16m可能不够。

4,可以直接在mysql中设置:
 

复制代码 代码示例:
#show variables like '%timeout%';
#show variables like 'max_allowed_packet'
set global wait_timeout=60000;
#set global max_allowed_packet = 2*1024*1024