OperationalError('(pymysql.err.OperationalError) (2006, "MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))")')
如果长时间没有对MySQL进行操作(包括CRUD),为了避免占用不必要的资源,MySQL服务器会主动断开于客户端的连接。
在断开连接后,发起一个请求,就会报错
```
(OperationalError('(pymysql.err.OperationalError) (2006, "MySQL server has gone away (BrokenPipeError(32, \'Broken pipe\'))")'),)
```
找到了原因,就可以对症下药了。
# 调整MySQL服务器的配置参数
通过调整MySQL服务器的超时配置参数,可以避免服务器主动断开连接。主要的配置参数包括
**wait_timeout**
该参数为设置连接的空闲超时时间,默认值为8小时。可以根据实际情况将其调大,例如设置为24小时,3天等。
**interactive_timeout**
该参数为设置交互式连接的空闲超时时间,默认值为8小时。同样可以根据实际情况将其调大,例如设置为24小时,3天等。
默认8小时的值为28800,24小时的值为86400,3天的值为259200。
登录MySQL数据库,将超时时间设置为3天,例:
```
set global interactive_timeout=259200, wait_timeout=259200;
我的笔记