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

解决MySQL的PacketTooBigException异常问题

一、背景

在大数据量导入mysql的时候,提示错误Cause: com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large

原因是MySQL的max_allowed_packet设置最大允许接收的数据包过小引起的,默认的max_allowed_packet如果不设置,默认值在不同的 MySQL 版本表现不同,有的版本默认1M,有的版本默认4M。
mysql根据配置文件会限制server接受的数据包大小。有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败

二、解决方法

持久化修改

我们直接修改配置文件,然后重启MySQL就可以了。windows是在mysql的安装目录下的my.ini文件里。增加以下命令。linux也是一样,但是配置文件是在my.cnf

max_allowed_packet = 200M

在这里插入图片描述

  • windows重启mysql命令,需要用命令行运行
net stop mysql
net start mysql
  • linux重启mysql
systemctl restart mysql

临时修改

注意:在mysql命令行中暂时修改,重新启动MYSQL后,会恢复原来的值。这里的数值为字节数,这里改为200M,需要重新登陆客户端起作用

set global max_allowed_packet = 2*1024*1024*100

测试

打开mysql,输入下面代码测试配置是否生效

show variables like '%max_allowed_packet%';

在这里插入图片描述
修改生效后,重新运行程序,程序正常执行不再报此异常


http://www.mrgr.cn/news/9088.html

相关文章:

  • 服务端事件(Server-Sent Events):实现实时Web通信的利器
  • 探索Qotom Q51251OPS迷你电脑:功能与广泛应用
  • Angular中的依赖注入是如何工作的?它的优势是什么?
  • C语言:深入理解文件操作
  • Redis的持久化介绍及其Linux配置介绍
  • List<对象>转JSON字符串以及JSON字符串转List<对象>
  • 大模型重塑就医体验:医联MedGPT助力健康中国建设
  • k8s搭建
  • vagrant 创建虚拟机
  • k8s中service对象
  • HTTP协议
  • 【Linux】如何快速查看 linux 服务器有几个cpu
  • 网站上线流程完全手册:域名、服务器与CDN
  • Java并发编程的核心概念--线程与进程
  • 河南萌新2024第五场
  • LeetCode100.删除链表的倒数第 N 个结点
  • Button窗口部件
  • ARM——操作示例
  • Git 多人协作
  • Python--正则表达式