2006 MySQL server has gone away

在使用MySQL PDO来处理数据库查询等等, 有些时候比如后台任务、操作时间过长,会出现“2006 MySQL server has gone away”问题。很明显解决这个问题有两种方式,第一种延长超时时间,第二种操作之前检查连接是否在线。

延长超时时间

在查询开始时设置wait_timeout = 28800(和interactive_timeout = 28800), 并检查时候设置上。

SET wait_timeout=28800
SET interactive_timeout = 28800
SHOW VARIABLES LIKE  '%timeout%'

PDO添加ping操作

try {
    $this->pdo->query('SELECT 1');
} catch (PDOException $e) {
    return false
}
return true;
linux alias命令
mysqlshow快速获取有关MySQL数据库,表,列和索引信息
Tags:,