发布于 2015-05-29 13:58:50 | 709 次阅读 | 评论: 1 | 来源: PHPERZ

这里有新鲜出炉的Mysql教程,程序狗速度看过来!

Mysql关系型数据库管理系统

MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。


错误描述

MySQL下当我导入一个比较大的SQL文件时出现了ERROR 2006 (HY000): MySQL server has gone away错误,具体情况如下:

>  ll *.sql
-rwxr-xr-x@ 1 bohan  staff    27M Mar 26 18:08 91620_all.sql

> mysql test < 91620_all.sql
ERROR 2006 (HY000) at line 17128: MySQL server has gone away

上面可以看到,文件大小为27M导入的时候会报这个错误。

错误原因

If you are using the mysql client program, its default max_allowed_packet variable is 16MB. To set a larger value, start mysql like this:

shell> mysql --max_allowed_packet=32M

That sets the packet size to 32MB.

我们通过MySQL相关文档可以发现默认大小是16M。

解决方法

所有大于16M的SQL文件都会报这个错误,我们可以直接通过命令后增加--max_allowed_packet=32M解决

或者登录MySQL客户端,修改系统变量

> ssh mysql
mysql> set GLOBAL max_allowed_packet=32*1024*1024;

我们也可以通过修改MySQL配置my.cnf文件,在最后一行增加max_allowed_packet=32M就可以了

MySQL配置文件的位置:

  • Windows下 C:\ProgamData\MySQL\MySQL Server5.6
  • Linux下 /etc/mysql
  • Mac下通过brew安装 /usr/local/Cellar/mysql/5.6.23


最新网友评论  共有(1)条评论 发布评论 返回顶部
jfuikh 发布于2015-10-01 05:47:14
支持(0)  反对(0)  回复

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务