当前位置: 首页 > news >正文

PyMysql error : Packet Sequence Number Wrong - got 1 expected 0

文章目录

  • 错误一
    • 错误原因
    • 解决方案
  • 错误二
    • 原因
    • 解决方案

我自己知道的,这类问题有两类原因,两种解决方案。

错误一

错误原因

pymysql的主进程启动的connect无法给子进程中使用,所以读取大批量数据时最后容易出现了此类问题。

解决方案

换成pymysql-pool可以解决方法:
具体如下:

pip install pymysql-pool

代码如下:

import pymysql
import pymysqlpooldef select_ebay_catelotory():config={'host': HOST, 'user': USER, 'password': PASSWD, 'database': DB, 'autocommit':True}pool1 = pymysqlpool.ConnectionPool(size=10, maxsize=20, pre_create_num=2, name='pool1', **config)con1 = pool1.get_connection()gcu = con1.cursor()try:gcu.execute(f"""SELECT *** """)# 获取剩余结果所有数据rows = gcu.fetchall()except Exception as e:print(e)finally:# gcu.close()con1.close()return rows

错误二

原因

要读取的内容太大了。有两类:某列太长了,总行数太多了。

如何确定?
你的代码读取100行没问题,1000行也没问题,10000行也没问题,100万行就有问题了。那就是这个原因。

解决方案

不要limit去读,太费时间:先取id,再用id去分批读取数据。

import pymysql
import pymysqlpooldef select_all_ids():config={'host': HOST, 'user': USER, 'password': PASSWD, 'database': DB, 'autocommit':True}pool1 = pymysqlpool.ConnectionPool(size=35, maxsize=35, pre_create_num=2, name='pool1', **config)con1 = pool1.get_connection()gcu = con1.cursor()try:gcu.execute(f"""SELECT `id` FROM sfc_minesweeper.product_detail WHERE create_time>'2024-07-10' AND CHAR_LENGTH(result_data)>500""")# 获取剩余结果所有数据rows = gcu.fetchall()except Exception as e:print(e)finally:# gcu.close()con1.close()return rowsdef select_ebay_catelotory(pids):config={'host': HOST, 'user': USER, 'password': PASSWD, 'database': DB, 'autocommit':True}pool1 = pymysqlpool.ConnectionPool(size=35, maxsize=35, pre_create_num=2, name='pool1', **config)con1 = pool1.get_connection()gcu = con1.cursor()try:gcu.execute(f"""SELECT `id`, `result_data`, `product_offer_id` FROM sfc_minesweeper.product_detail WHERE id in {tuple(pids)}""")# 获取剩余结果所有数据rows = gcu.fetchall()except Exception as e:print(e)finally:# gcu.close()con1.close()return rows# 先拿到所有id
pd_ids = [e[0] for e in select_all_ids()]
# 再分批读取
pd1688s = []
step = 4000
for begin in range(0, len(pd_ids), step):pd1688s.extend([e for e in select_ebay_catelotory(pd_ids[begin:begin+step])])print(i, len(pd1688s))

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 通过 Azure OpenAI 服务使用 GPT-35-Turbo and GPT-4(win版)
  • 35 解决单条链路故障问题-华三链路聚合
  • 【VS2019】安装下载库HtmlAgilityPack,可解析 HTML (图文详情)
  • QGroundControl连接运行在Docker中的PX4固件模拟器
  • [PaddlePaddle飞桨] PaddleOCR-光学字符识别-小模型部署
  • 【人工智能】Transformers之Pipeline(概述):30w+大模型极简应用
  • C语言阶乘(只用逻辑运算中的短路效应判断)
  • WEB前端03-CSS3基础
  • 兼容问题---ios底部的安全距离css设置
  • C++进阶(while循环——函数应用)
  • 通过vm可以访问那些属性——06
  • 整洁架构SOLID-接口隔离原则(ISP)
  • WSGI 服务器教程:`full_dispatch_request` 方法解析
  • Flutter框架时间线梳理
  • 同三维T80004EA编解码器视频使用操作说明书:高清HDMI编解码器,高清SDI编解码器,4K超清HDMI编解码器,双路4K超高清编解码器
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 2018一半小结一波
  • Android 架构优化~MVP 架构改造
  • CentOS7 安装JDK
  • co模块的前端实现
  • DataBase in Android
  • exif信息对照
  • iOS | NSProxy
  • Javascript基础之Array数组API
  • js数组之filter
  • Mithril.js 入门介绍
  • PHP 7 修改了什么呢 -- 2
  • Shadow DOM 内部构造及如何构建独立组件
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 微信开放平台全网发布【失败】的几点排查方法
  • 异步
  • 用jquery写贪吃蛇
  • 转载:[译] 内容加速黑科技趣谈
  • puppet连载22:define用法
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #宝哥教你#查看jquery绑定的事件函数
  • #前后端分离# 头条发布系统
  • $.ajax()
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (编译到47%失败)to be deleted
  • (多级缓存)缓存同步
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (十)Flink Table API 和 SQL 基本概念
  • (顺序)容器的好伴侣 --- 容器适配器
  • (四)进入MySQL 【事务】
  • (已解决)什么是vue导航守卫
  • (转)程序员疫苗:代码注入
  • (转载)利用webkit抓取动态网页和链接
  • ***原理与防范