MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))[MySQL插入内容超过4M]

Bug描述:

用Python的pymysql向MySQL数据库insert插入数据时,遇到报错信息:(2006, "MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))"),原因是插入的数据超过了4M,超过了MySQL默认的max_allowed_packet(默认值是4M),无法将数据插入到MySQL中.

这个报错是Redhat上的报错,如果在Windows上报错:Got a packet bigger than 'max_allowed_packet' bytes,与上面的原因一样.(其实直接连接MySQL,插入的数据超过4M也会遇到这个问题)

解决方法: 修改MySQL的max_allowed_packet值

1.通过命令修改

在终端登录mysql.

输入命令:show VARIABLES like '%max_allowed_packet%';查看当前的max_allowed_packet值是多少.

命令:set global max_allowed_packet = 1024*1024*32;设置新的max_allowed_packet值,如:设为32M,1M是1024*1024,自己需要多少M就自己设置.没有特别要求可以尽量设为2的幂,总之够用就行.

>show VARIABLES like '%max_allowed_packet%';
>set global max_allowed_packet = 1024*1024*32;

2.修改MySQL配置文件

Linux(Redhat/CentOS/Ubuntu)系统的配置文件是/etc/my.cnf,vim打开my.cnf,然后找到max_allowed_packet,修改成自己需要的值,如修改成32M,如果没有找到max_allowed_packet,则在[mysqld]下面增加一行max_allowed_packet = 32M即可.

max_allowed_packet = 32M

有些系统的mysql配置是自己设置过的,存放的位置可能不一样,配置文件名也可能不一样,甚至可能[mysql]和[mysqld]的配置写在不同文件中,这种情况需要自己找到[mysqld]所在的配置文件,然后在下面修改或新增.

Windows系统的MySQL配置文件是在MySQL安装目录下的my.ini(如果找不到,直接打开我的电脑,在搜索框中搜索).

找到my.ini后用记事本打开,找到max_allowed_packet,将值修改成自己需要的值,如:改成32M.

max_allowed_packet = 32M

如果找不到max_allowed_packet,先Ctrl + F搜一下,如果还是没有找到,则找到[mysqld],在[mysqld]下面增加一行max_allowed_packet = 32M.

3.一般来说,一条数据超过4M,都是很长的json字符串,如果这个json字符串可以分成多条数据,也可以将数据拆分成多条数据,然后批量插入MySQL中(具体实现方法自己找一下).

可以使用bytes()将字符串转成字节,然后看字符串大小是否超过了1024*1024*4

test_str = '[{"key":"value", "": ""},{"key":"value", "": ""},{"key":"value", "": ""}]'test_byte = bytes(test_str.encode('utf-8'))
print(len(test_byte))
print(len(test_byte) > 1024*1024*4)

MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))[MySQL插入内容超过4M]相关推荐

  1. 页面文件太小,无法解决/BrokenPipeError: [Errno 32] Broken pipe问题解决

    跑模型的日子就是天天.天天地改bug,bug天天对我说"爱你",我只想让它滚出地球呜呜呜呜呜呜.为了表达我对它们的"爱意",我一定要把这几天的辛酸泪记录下来! ...

  2. 【YOLOv5】yolov5训练中遇到的问题解决:BrokenPipeError: [Errno 32] Broken pipe

    硬件配置 硬件设备:Windows + GeForce RTX 3070 + Cuda 11.1 +Anaconda yolo版本:YOLOv5-3.1 源码地址:https://github.com ...

  3. BrokenPipeError: [Errno 32] Broken pipe 基于pytorch的训练 num_worker参数理解

    BrokenPipeError: [Errno 32] Broken pipe 解决 原因: 在训练过程中,设置的num_workers过大 修改为 num_workers=0 即可. num_wor ...

  4. 调用 usb_control_msg 返回错误值 -32, Broken pipe, 对 hidraw write时 返回错误值 -32, Broken pipe

    -------------------Step 1--------------------- 如题,使用 libusb 对 hid 类设备进行控制传输的时候,有时会遇到此错误,但是实际上传输是成功的, ...

  5. Python的问题解决: IOError: [Errno 32] Broken pipe

    Python的问题解决: IOError: [Errno 32] Broken pipe 参考文章: (1)Python的问题解决: IOError: [Errno 32] Broken pipe ( ...

  6. mysql.server 文件是什么_mysql的启动脚本mysql.server及示例配置文件

    以MySQL-server-4.0.14-0.i3862881064151.rpm为例,放在/data目录下 cd /data rpm -ivh MySQL-server-4.0.14-0.i386. ...

  7. can‘t connect to mysql server on localhost解决办法。 net start mysql——无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。

    can't connect to mysql server on localhost解决办法如下: 1.首先检查MySQL 服务是否启动,如果没有启动,则要启动这个服务: 有时候安装mysql后使用m ...

  8. pytorch错误解决: BrokenPipeError: [Errno 32] Broken pipe

    该问题的产生是由于windows下多线程的问题,和DataLoader类有关 原因是windows 下 DataLoader加载数据集启用线程的数目这一块,是有bug的 trainloader = D ...

  9. pymysql.err.OperationalError: (2006, “MySQL server has gone away (BrokenPipe

    目录 第一种情况:真的是连接数据库超时导致,比较常见 第二种情况:MySQL插入内容超过4M 在使用python+Django写项目时,需要用到定时任务apscheduler,但服务在长时间运行时,定 ...

最新文章

  1. Deep Manta:单目图像下2d到3d由粗到精的多任务网络车辆分析
  2. java修改数据库表结构_数据库设计(一):设计传统系统表结构(Java开发)
  3. 开源 java CMS - FreeCMS2.4 模型管理
  4. java 广义表_java 输入广义表 生成二叉树 | 学步园
  5. Tensorflow:分类模型评估
  6. python3的encode()和decode()
  7. 《从程序员到项目经理》学习笔记
  8. Websocket 从header读取数据
  9. 人工鱼群算法python实现
  10. java外文文献_spring框架外文文献 PDF 下载
  11. SQL Server 2019 安装教程
  12. 计算机网络总结-一本书一个晚上一个奇迹
  13. 计数排序CountingSort
  14. 消除红眼效应及matlab实现
  15. Python+Selenium自动化测试之页码,前一页、后一页、翻页
  16. 关于几个箭头符号含义的介绍
  17. SQL数据库修复例子
  18. 【理解springboot自动装配原理】
  19. 北京尚学堂退课退课,口碑还不错
  20. 埃森哲荣膺“IDC商业分析服务提供商”领军者

热门文章

  1. Element UI自定义表单验证 公共提取
  2. 【转】Linux的五个查找命令:find,locate,whereis,which,type
  3. WPF TextBox只能输入数字
  4. 大型企业网络设备管理
  5. Nest入门教程 - 初识Providers
  6. Nginx开启Gzip压缩配置详解
  7. Spring - Bean注解配置光速入门
  8. 安利几款语音识别软件
  9. Python爬虫连载16-OCR工具Tesseract、Scrapt初步
  10. 【Java】计算从你的出生日期到现在相隔了多少天,多少时,XX分,XX秒。