問題一
我在使用
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小時
。