解决MySQL server has gone away问题

旧时模样 提交于 2019-12-02 21:34:54


    今天跑的一个php脚本遇到了一个MySQL server has gone away问题的问题

原因是遍历循环生成excel并打包的时间过长,超过了mysql的 wait-timeout时间,导致mysql断开了链接。

    两种方法可以解决:

        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这样的问题,而且不会对系统造成额外的开销
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!