前言:
mysql版本:5.7
系统:Windows
问题:
拉取数据到本地mysql时,出现错误提示:
PacketTooBigException: Packet for query is too large
解决方式:
一、通过navicat可视化工具修改 –服务重启时,还是会被重置为默认值
二、 通过my.ini文件修改"max_allowed_packet"参数值 –不会受服务重启改变
一、windows下修改:
1.可视化工具修改
1、输入命令,查看当前参数值
运行命令:
show VARIABLES like ‘max_allowed_packet’
2、设置max_allowed_packet值为200M
运行命令:
set global max_allowed_packet = 2 * 1024 * 1024 * 100
2.编辑my.ini文件修改
1、错误提示具体如下
很明显数据过大限制,而且提示我们可以通过修改"max_allowed_packet"参数值解决
2、在my.ini文件找到max_allowed_packet参数
解释:mysql数据默认在c盘,可能有人就去mysql安装目录找,却发现怎么也找不到,诶!我的mysql安装目录如下:
其实my.ini文件在跟mysql数据存储路径在一起,只要找到“\ProgramData”目录即可,如下:
3、编辑my.ini文件,修改 “max_allowed_packet” 为200M
二、Docker下mysql修改:
步骤:
1、查看mysql容器名称
2、进入myql容器下的 /etc/mysql 目录
3、编辑 my.cnf,最后添加一行 max_allowed_packet=20M
1、查看mysql容器名
docker ps
2、进入myql容器下的 /etc/mysql 目录
cd /etc/mysql
3、编辑 my.cnf文件
vim my.cnf
最后再执行sql就不会有问题了!
4、如果使用docker-compose,添加参数 command: --max_allowed_packet=209715200
version: "3"
services:
data:
image: "mysql:5.7"
command: --max_allowed_packet=209715200 # Set max_allowed_packet to 256M (or any other value)
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=db
- MYSQL_USER=user
- MYSQL_PASSWORD=user_password
补充: vim不能使用的情况!
步骤:
1、查看linux系统
2、使用对应工具安装vim
3、RedHat系列:Redhat、Centos、Fedora等,包管理工具是 yum执行 yum update
执行 yum -y install vim4、Debian系列:Debian、Ubuntu等,包管理工具是 apt-get
执行 apt-get update
执行 apt-get -y install vim
Ending!