一个 Python 往 mysql 写数据出现的问题,帮忙解决下

2017-04-28 14:05:53 +08:00
 maiganne

用多线程通过 pymysql 向 mysql 写入数据,报错 “ Packet sequence number wrong",是什么原因呢?

2543 次点击
所在节点    Python
6 条回复
idblife
2017-04-28 14:09:59 +08:00
多线程的策略有问题,google 一下就明白了
另外这个如果想找大家帮忙,需要贴源代码出来
rocksolid
2017-04-28 14:10:34 +08:00
升级 pymysql
cmlz
2017-04-28 14:13:34 +08:00
换个 pymysql 版本试试?
maiganne
2017-04-28 14:21:58 +08:00
@idblife 我发现每启动一个线程,就要进行一次与数据库的连接,conn=pymysql.connect(**database),这样就不会报错,而所有线程共用一个连接对象 conn 就会出错,不知道这是什么原因
daybyday
2017-04-28 14:29:43 +08:00
几种解决方案:
1. 每个线程拥有自己的连接
2. 所有线程共用一个连接,加锁互斥使用此连接
3. 所有线程共用一个连接池,需要考虑线程总数和连接池连接数上限的问题
maiganne
2017-04-28 14:34:01 +08:00
@daybyday 感谢答复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/357944

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX