码迷,mamicode.com
首页 > 数据库 > 详细

MySQL server has gone away的解决方法

时间:2019-12-30 21:40:01      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:while   insert   就是   val   log   imp   contain   reading   ike   

用跑python 写了一个链接mysql数据库的类,发现过了一天链接就断掉了,原来mysql有一个超时时间的设置

查看超时设置:

show global variables like ‘%timeout%‘;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| connect_timeout            | 10    |
| delayed_insert_timeout     | 300   |
| innodb_lock_wait_timeout   | 50    |
| innodb_rollback_on_timeout | OFF   |
| interactive_timeout        | 28800 |
| net_read_timeout           | 30    |
| net_write_timeout          | 60    |
| slave_net_timeout          | 3600  |
| table_lock_wait_timeout    | 50    |
| wait_timeout               | 28800 |
+----------------------------+-------+
rows in set (0.00 sec)

其中的 interactive_timeout  就是设置的链接超时时间,我们把它改大一点,比如改为15天:

set global interactive_timeout=1296000;

这样就可以了

-----------------------------------------------------------------------------------------------------------------

如果以上方法不起作用,可以写一个线程循环去访问:

例如:

技术图片
def keep_mysql():
    while True:
        sql_utils.sql_utils.select_case("tablename") # 执行select语句,根据自己的代码更改
        #print("keep live---------------")
        time.sleep(7200)

if __name__ == "__main__":
    import threading
    threading.Thread(target=keep_mysql).start()
技术图片

这样每隔2个小时会执行select语句保证mysql链接gone away(间隔时间自己调整)

 

原文链接: https://www.cnblogs.com/gaigaige/p/11088310.html

MySQL server has gone away的解决方法

标签:while   insert   就是   val   log   imp   contain   reading   ike   

原文地址:https://www.cnblogs.com/railgunman/p/12121608.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!