前言
一般在工作中,遇到需要将上百万以上的数据存入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)
如果喜欢本文或者本文对你有帮助的话,记得关注小编并点个赞哟,欢迎留言私信。