MySQL server has gone away

错误如下

<strong>Mysql error description</strong>: MySQL server has gone away
<br /><strong>Mysql error number</strong>: 2006
出现这种错先看下errno如果是2006那就是超时了,解决方法有两种

1.到mysql配置文件my.cnf里修改wait_timeout的值为更大的值
2.通过代码的重试,为防止进入死循环,只重试一次,代码如下

function query($sql, $type = '', $retry='') {
    $func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?
        'mysql_unbuffered_query' : 'mysql_query';
    if(!($query = $func($sql)) && $type != 'SILENT') {
        $errno = intval(($this->link) ? mysql_errno($this->link) : mysql_errno());
        if (in_array($errno, array(2006, 2013)) && substr($retry, 0, 5) != 'RETRY') {
            $this->close();
            require(SABLOG_ROOT.'config.php');
            $this->connect($servername, $dbusername, $dbpassword, $dbname, $usepconnect);
            return $this->query($sql,$type, 'RETRY'.$retry);
        }
        $this->halt('MySQL Query Error', $sql);
    }
    $this->querycount++;
    return $query;
}

 

上一篇: 视频音频转换命令收集   下一篇: ps aux命令查看进程的状态是否僵尸

提交疑问

回顶部