Python|(解决) pymysql.err.OperationalError: (2013, ‘Lost connection to MySQL server during query‘)

当遇到Python脚本在大量数据导入MySQL时因连接超时导致的错误,可以尝试将SQL操作置于循环中,并结合try...except和ping数据库来重试。通过示例代码展示了如何处理这种异常,确保数据成功导入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

一般在工作中,遇到需要将上百万以上的数据存入mysql。当你兴致勃勃的写好python脚本,准备将脚本运行将数据导入的时候,系统会突然报这样的错误。

pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')

像这样的情况,一般是数据库连接超时造成的。这个时候只需将sql语句放入一个循环当中,再配合try...except语句,ping一下数据库(重连数据库)就可以解决。

 解决方法

如下代码:

import pymysql

a = [1,2,3,4,5,6,...]
b = ['rudy', 'joke', 'jack', 'rose', 'happy', 'sun', ...]
c = [222,333,223,224,445,666,...]

data_list = []
for x, y, z in zip(a, b c):
    value = (x, y, z)
    data_list.append(value)


conn = pymysql.connect(host='',            # 主机名
                       user='',            # 用户名
                       password='',         # 密码
                       database='',         # 数据库名
                       charset='utf8mb4')


while True:
    try:
        cs = conn.cursor() # 获取游标
        cs.executemany("insert into 数据表名 (列名1, 列名2, 列名3) values(%s,%s,%s)", data_list)
        conn.commit()
        cs.close()
        conn.close()
        print('OK')
        break
    except Exception as error:
        conn.ping(True)
    

如果喜欢本文或者本文对你有帮助的话,记得关注小编并点个赞哟,欢迎留言私信。

Python爬虫|多线程爬虫的实现思路

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写python的鑫哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值