python 向数据库写数据,可以写一部分,但是之后就报2006错误

大概要写11万条数据,但是只写了100多条,然后就报错OperationalError:(2006,'MySQLserverhasgoneaway')... 大概要写11万条数据,但是只写了100多条,然后就报错

OperationalError: (2006, 'MySQL server has gone away')
展开
 我来答
bdwisyou7d
推荐于2016-03-10 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3774
采纳率:81%
帮助的人:1037万
展开全部
关于mysql为什么gone away我这里就不描述了。你有时间可以详细看一下教程,对你会有很大帮助的。

这里仅仅讲如何处理这件事情,从python程序员来说,如果没有mysql server的管理权限如何去处理。

建议是两个办法,第一是找到合适的时间点进行commit; 第二是进行出错处理。具体到你这个情况,我建议是写50条后,就主动发起一个commit;的mysql命令。写在你自己的mysql的语句后面。 很有可能,不用重新连接也可以解决这个问题。 第二就是当发生mysql gone away错误时,先尝试关闭cursor,再尝试关闭mysql连接,然后进行mysql的重新连接, cursor当然也去重新初始化,重新将刚才失败的语句进行写入。

如果正好是50条语句一起写入,还没有来得及commit就失败了,有可能需要将50条全部重新写入一次。

如果你用的是insert方法, 需要在insert后面加一个ignore,这样避免重复记录的产生。

如果遇到新的问题,再灵活处理。
mieyoubeizhuce
2015-09-29 · TA获得超过610个赞
知道小有建树答主
回答量:733
采纳率:100%
帮助的人:469万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式