问题现象
django搭建的服务器,早上过来使用报错误MySQL server has gone away
解决方法
配置settings.py中的数据库参数,‘CONN_MAX_AGE’: 21600,
‘ATOMIC_REQUESTS’: True
原因解析
出现问题的原因是:MySQL服务端主动关闭了前一天创建的链接,而django中的进程还在使用旧的链接去连数据库,所以报错“MySQL server has gone away”
详细的参数:
MySQL数据库默认的链接等待超时时间(wait_timeout)是8小时(86060=28800s),django原先的默认启动参数中,设置的CONN_MAX_AGE(CONN_MAX_AGE来控制每个连接的最大存活时间)是None,也就是永不过期,这样就造成每天早上过来,数据库关闭链接,django还保留。解决的方法就是把CONN_MAX_AGE设置成小于wait_timeout的时间即可。
参考博文
https://www.cnblogs.com/aaron-agu/p/10380559.html
https://blog.csdn.net/swatyb/article/details/83552606