Lost connection to MySQL server during query ([WinError 10053] 您的主机中的软件中止了一个已建立的连接

背景

在测试站上并没有问题,放到线上就会报错。如下:

(2013, 'Lost connection to MySQL server during query ([WinError 10053] 您的主机中的软件中止了一个已建立的连接。)')

分析

分析了一下主要会有以下三个方面的原因

  1. mysql服务器宕机了
  2. 执行的sql过长被杀死了
  3. 服务器连接超时了

解决

根据以上分析原因依次确认,mysql还可以打开并执行

排除了第一种,哈哈

测试了线上需要执行的时间很快,排除第二种

所以嘛,也就是第三种。连接超时了。

两种解法方案哈

1.修改等待时间wait_timeout,可以使用如下命令修改

mysql> show global variables  like '%timeout%'; 找到需要配置的参数
mysql> set global interactive_timeout=60*60*24; 设置超时时间
mysql> set global  wait_timeout=60*60*24; 设置超时时间

简单说一下两种超时的区别吧,interactive_timeout是交互式连接,wait_timeout是非交互式连接,交互式就是打开一个客户端进行操作,而非交互式就是我们new Db,然后cursor操作这样。

2.第二种就是使用后台语言判断是否连接超时,进行重联。上代码

    sql = "select * from users where user_id = 100"
    db.connect(reconnect=True)
    res = cursor.execute(sql)

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值