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

前言

一般在工作中,遇到需要将上百万以上的数据存入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爬虫|多线程爬虫的实现思路

你可能感兴趣的:(数据库,python,mysql)