sql语句的长度跟数据包是成正比的,长度越长,数据包占用内存越大。
mysql通讯的数据包大小设置是1M,所以如果传过来的mysql语句内存大于1M,就会失败。
解决办法:1.注意精简sql语句,可以分批次执行,减少数据库压力。
2.修改数据库通讯数据包大小,mysql的配置文件(my.ini)中的max_allowed_packet = 需要修改的值
修改为合适的值。
注意打开查看隐藏文件
my.ini 一般在C:\ProgramData\MySQL\MySQL Server 5.5
或者打开任务管理器,找到mysql进程右键打开文件位置
如果还找不到,有的是有个my-default.ini,直接复制一份修改里面max_allowed_packet,把名字改为my.ini
3.在mysql 命令行中运行
set global max_allowed_packet = 2*1024*1024*10
然后退出命令行,重启mysql服务,再进入。
show VARIABLES like '%max_allowed_packet%';
查看下max_allowed_packet是否编辑成功