Mysql5中Packet for query is too large (3396053 > 1048576),数据量太大解决方案

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Mysql5中Packet for query is too large (3396053 > 1048576),数据量太大解决方案

情况出现情景:

在SpringBoot+mybatis+mysql5.5的环境上进行查询数据,要查询(通过很多编号进行查询,一个编号有5-12位不等的编号)的数据太多。

报错如下:

### Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (3396053 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
; SQL []; Packet for query is too large (3396053 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.; nested exception is com.mysql.jdbc.PacketTooBigException: Packet for query is too large (3396053 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.] with root cause
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (3396053 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.

分析错误:

重要的提示:

Packet for query is too large (3396053 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.

大概意思是:

用于查询的包太大,您可以通过设置’max_allowed_packet’变量来更改服务器上的这个值。

通过网上查资料了解到,mysql默认加载的数据文件不超过1M。只能通过修改配置文件来解决。

那么’max_allowed_packet’变量是哪里的呢?

答案:

mysql中的

打开mysql命令行

输入命令

set @@max_allowed_packet=16*1024*1024

报错了,说:变量’max_allowed_packet’是只读的。使用SET GLOBAL分配值

解决方案:

SET GLOBAL max_allowed_packet=16*1024*1024

成功了。

第一种办法不行,就用第二种。第二种不行就用第一种。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
【Mysql】MYSQL参数max_allowed_packet 介绍
【Mysql】MYSQL参数max_allowed_packet 介绍
80 0
|
8月前
|
关系型数据库 MySQL Windows
对于测试时,错误信息 Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large
对于测试时,错误信息 Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large
|
10月前
|
关系型数据库 MySQL Windows
解决mysql max_allowed_packet 太小 造成的程序查询数据报错问题
1.因为mysql有一个max_allowed_packet变量,可以控制其通信缓冲区的最大长度,所以当缓冲区的大小太小的时候,导致某些查询和插入操作报错。 解决方法如下, 2.解决方法 2.1 修改配置文件 a .可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。 max_allowed_packet = 20M
346 0
|
存储 缓存 关系型数据库
【MySQL】query_cache_size=16M,是干什么的?底层原理是什么?
【MySQL】query_cache_size=16M,是干什么的?底层原理是什么?
117 0
|
关系型数据库 MySQL 数据库
【MySQL】max_allowed_packet=16M,是干什么的?底层原理是什么?
【MySQL】max_allowed_packet=16M,是干什么的?底层原理是什么?
198 0
|
SQL 关系型数据库 MySQL
Packets larger than max_allowed_packet are not allowed(mysql数据查询提示:不允许超过允许的最大数据包)解决方案
Packets larger than max_allowed_packet are not allowed(mysql数据查询提示:不允许超过允许的最大数据包)解决方案
244 0
|
NoSQL Java MongoDB
MongoDB Limit与Skip方法
MongoDB Limit与Skip方法
55 0
|
关系型数据库 MySQL
MySQL - Packet for query is too large (4,544,730 > 4,194,304). You can change this value on the …
MySQL - Packet for query is too large (4,544,730 > 4,194,304). You can change this value on the …
298 0
|
SQL 关系型数据库 MySQL
mysql 报错 Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large
mysql 报错 Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large
106 0
mysql 报错 Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large
|
安全 关系型数据库 MySQL