问题一
我在使用
Python
操作mysql
时出现:pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionAbortedError(10053, '你的主机中的软件中止了一个已建立的连接。', None, 10053, None))")
。
问题的出现:我是使用了sqlalchemy
和pymysql
驱动操作数据库的。过一段时间没有数据库的操作时,然后又操作了数据库的添加时就出来了上面的问题。
错误原因:是因为我的数据库默认2分钟不从数据库取数据则断开连接,如下图中的interactive_timeout
,其值为120秒
,也就是2分钟
。
如下图所示:
检查问题
show global variables like '%timeout%';
解决问题
- 可以将
interactive_timeout
设置大一些。如:
mysql> set global interactive_timeout=86400;
再通过show global variables like '%timeout%';
查看如下图所示:
问题二
我在使用
Python
操作Mysql
数据库时出现问题:(pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query ([WinError 10053] 你的主机中的软件中止了一个已建立的连接。)')
。
错误原因:是因为MySQL
持久化链接保持时间wait_timeout
。我的数据库的持久化链接保持时间是2分钟
。如下图所示:
解决问题
- 把
wait_timeout
持久化链接保持时间长一些。如下:
mysql> set global wait_timeout=7200;
7200
是2小时
。