MySQL server has gone away的解决方法

用跑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

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

时间: 2024-10-13 00:16:20

MySQL server has gone away的解决方法的相关文章

ThinkPHP出现General error: 2006 MySQL server has gone away的解决方法

错误: #13 {main}SQLSTATE[HY000]: General error: 2006 MySQL server has gone awayFILE: \ThinkPHP\Library\Think\Db\Driver.class.php(169) 原因分析: 本次错误提示是在cli模式运行,隔一段时间就会出现,查询资料后发现mysql默认没隔8个小时(2880000秒)就会断开 解决方案,解决方式找了三个 方法1 配置mysql.cnf(windows系统则是my.ini),指定

MySQL(Navicat)运行.sql文件时报错:[Err] 2006 - MySQL server has gone away 的解决方法

Message: MySQL server has gone away 原因可能是sql语句过长,超过mysql通信缓存区最大长度: 调整mysql配置文件中max_allowed_packet 编辑mysql.ini max_allowed_packet=16M 重启mysql

mysql导入sql文件报错“MySQL server has gone away”的解决方法

登陆mysql终端,查看当前配置(默认单位是字节): show VARIABLES like '%max_allowed_packet%'; 在mysql的安装目录下 找到 my.ini文件 加入以下代码: interactive_timeout = 120 wait_timeout = 120 max_allowed_packet = 32M

mysql导入大批量数据出现MySQL server has gone away的解决方法

学习了:https://blog.csdn.net/fdipzone/article/details/51974165 https://blog.csdn.net/nthack5730/article/details/50043277 原文地址:https://www.cnblogs.com/stono/p/9139361.html

centos里mysql无法用localhost连接的解决方法

遇到这个问题可能是由于我未安装在默认路径导致的 解决方法: 由于mysql 默认的mysql.sock 是在/var/lib/mysql/mysql.sock,但linux系统总是去/tmp/mysql.sock查找,所以会报错 [[email protected] ~]# find / -name mysql.sock/var/lib/mysql/mysql.sock 1.直接指定mysql通道 [[email protected] ~]# mysql --socket=/var/lib/my

can't connect local MySql Server though socket "/tmp"如何解决

openwrt上安装php,提示如此 网上一大通找 发现的都是can't connect local MySql Server though socket "/tmp/mysql.socket"如何解决 人家还是找的mysql.socket:我的竟然直接找的tmp目录,真是无语.人家的解决方法使用软连接直接无效: 难道要我自己编译php吗?想想都头大. 继续找方案: 在此文档中 http://kong1616.iteye.com/blog/682342 发现了这么一句话 在/etc/p

Adobe Dreamweaver CC MySQL连接 报404错误的解决方法

Adobe Dreamweaver CC MySQL连接时总报404报错,并给以下两个提示: 1) 在该服务器机器上没有测试服务器运行. 2) 为该站点指定的测试服务器没有映射到http://localhost/_mmServerScripts/MMHTTPDB.phpURL.请确认url前缀映射到了你站点的根上. 网上翻了一堆网站,折腾了两三天,发现可以按如下方法解决: 1)首先要在http://localhost/security/index.php配置mysql的访问密码(我用的是XAMP

LIGHTSWITCH 连接 MYSQL,中文字符不能保存----解决方法。

使用:dotConnect for MySQL () 作为 数据库连接的PROVIDER ,  在 LIGHTSWITCH 中 引用外部的MYSQL 数据源. http://www.devart.com/dotconnect/mysql/      也有  postgre LS 项目没有使用:中文 ,而是使用 EN  产生?  后来修改了.只是 没有进一步测试. LIGHTSWITCH 连接 MYSQL,中文字符输入时,出现不能保存. 1) 检查 MYSQL 数据库及表.字段定义 ,都是:UTF

Navicat for Mysql2003-can's connect to MySQL server on'localhost'10061的解决

Navicat for Mysql2003-can's connect to MySQL server on'localhost'10061的解决 环境:Navicat for Mysql 8.2 + MySQL Sever 5.1 问题:通过MySQL命令行能连接,但是通过Navicat for Mysql 8.2却连不上,出现如下错误: 2003 - can's connect to MySQL server on 'localhost' 10061 解决: 删除安装目录下的my.ini,然