今天跑的一个php脚本遇到了一个MySQL server has gone away问题的问题 php
缘由是遍历循环生成excel并打包的时间过长,超过了mysql的 wait-timeout时间,致使mysql断开了连接。 mysql
两种方法能够解决: sql
1.增长你的 wait-timeout值,这个参数是在my.cnf(在Windows下台下面是my.ini)中设置,(这个值的单位是秒,意思是当一个数据库链接在10秒钟内没有任何操做的话,就会强行关闭) 数据库
2.检查 MySQL的连接状态,使其从新连接 函数
//数据库操做类中间的一个函数 function ping(){ if(!mysql_ping($this->link)){ mysql_close($this->link); //注意:必定要先执行数据库关闭,这是关键 $this->connect(); } }
$DB->ping();//致使数据库链接关闭,检查并从新链接 $threeResult = $DB->fetch_arrays($sql);通过这样处理后,能够很是有效的解决MySQL server has gone away这样的问题,并且不会对系统形成额外的开销