General error: 2006 MySQL server has gone away 解决办法

恭喜你数据库走远了;

这个有挺多原因的其他的不说了,说一下今天发生的问题;排除数据库本身的问题(我的MySQL确实在这个时间没有宕机。),就是程序的问题,这个问题就是进程一直存在,但是太久没有操作数据库,导致数据库断开了,但是突然有一条数据过来,这个时候进程不会重新去链接数据库,只是用原来链接的(这时候已经断开了),导致没有办法找到这个数据库,所以就报了这个错误。

解决办法:

$round = mt_rand(1, 10);
if ($round == 6) {
    // 查询一条sql 避免因为连接超时进程无法使用
    $dividend = Db::query("select id from think_member_group where  `id` = 1");
}

随机一个数,这个方法核心在于让你的进程每过几秒去查一下数据库,让这个链接不至于断开。

你可能感兴趣的:(mysql,mysql,数据库)