最近测试发现网站的数据不正常,经过排查,是脚本没正常运行。查看错误日志,发现报SQLSTATE[HY000]: General error: 2006 MySQL server has gone away错误。

第一时间怀疑是服务器连接数太多,但是使用SHOW FULL PROCESSLIST查询,进程并不多。

然后再回到报错信息,服务器连接已消失,为什么会消失呢?

于是求助万能的搜索引擎,找到了《[解决SQLSTATE[HY000]: General error: 2006 MySQL server has gone away问题的方法](https://www.jianshu.com/p/13dfe27b0b95)》。

最后得知,因为脚本是运行在CLI模式,连接数据库之后,一直长时间没与MySQL服务器交互,所以MySQL服务器就断开了与脚本的连接。

问题找到了,那就好解决了!ThinkPHP 自带数据库断线重连,所以只需要开启它就可以了。

打开数据库配置文件/config/database.php,找到break_reconnect配置,设置为true即可。

问题完美解决!

标签: none

添加新评论