出现这个错误的原因是MySQL会根据my.ini配置文件来限制传输的数据包大小,而我的MySQL5.7一开始并没有my.ini文件,我在写入配置的时候也没有设置过相关的参数。
打开MySQL的命令窗口,登录进入,输入命令:select @@max_allowed_packet;
,查询结果如图:
说明当前使用的默认值是4M,我将允许接收的数据包大小最大值设置为500M:set global max_allowed_packet = 5*1024*1024*100;
增大此配置的值并不会有太多危险,因为额外的内存仅仅只在需要的时候被分配。之所以默认配置很小是为了预防意外情况下发送了巨大的数据包导致oom。
此处须知: 设置完之后必须先退出命令行,再重启MySQL的服务才会看到新的修改结果!
查询问题过程中得知通过命令行的修改并不是一劳永逸的,如果数据库重启会复原,想要一劳永逸,则采取方法二
直接去mysql的data目录中将此数据库文件删除在重启mysql服务