最近测试发现网站的数据不正常,经过排查,是脚本没正常运行。查看错误日志,发现报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
即可。
问题完美解决!