总结个关于MySQL数据库的问题
问题概括:MySQL Server has gone away?
遇到这个问题还得追溯到这次前往南通软件园出差。当天下午下班之前,主管说可能明天出差,把项目和最新的数据库备份一下,备份完成之后,也没在意,况且还没确定呢,这仅仅是可能,至于这个可能性有多少,管他呢!原谅我本身就是一个不喜欢把公司的项目运行在自己笔记本上的心态。
晚上11点左右接到项目主管确认出差的电话,具体在哪儿,怎么去,都没说。仅仅说把项目部署到自己的笔记本上。得亏自己的开发环境和公司一样,想想这应该花不了多长时间,项目导入到MyEclipse ,将备份好的数据库脚本导入到MySQL运行即可。但是,由于公司项目中的数据实在是太大了,光一个数据库脚本就200+M。脚本中包含数据库结构和客户的业务数据。很多人都认为,公司的业务数据怎么能随便备份,小公司,别太在意这些小问题。
在运行SQL脚本过程中,出现了这样的错误:ERROR : (2006, 'MySQL server has gone away')。在网上查了下,其实网友还是比较靠谱的。根据网友提供的出现该问题的原因,自认为是由于长时间执行批量的MySQL语句,SQL运行时间长,insert 插入数据比较多,传送的数据太大引起的,最常见的原因是采集或新旧数据的转化。事实证明自己是对的。
为了简便,直接在dos命令行下进行的操作。
>show global variables like '%timeout';
>set wait_timeout=2880000;
>set interactive_timeout=2880000;
>show global variables like 'max_allowed_packet';
>set global max_allowed_packet=1024*1024*16;
然后source d.sql;再次进行备份,顺利解决,不会再出现以上问题。
作者:itRed 博客:http://itred.cnblogs.com |