问题描述:
Err [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes
问题原因:
mysql默认max_allowed_packet=1M,使用navicat导入数据的时候,默认使用的是扩展插入语句,即:
mysql> insert into tablename (cloum1,cloum2,...) values (value1,value2,...),(value1,value2,...),...;
使得单个数据包大小超过max_allowed_packet的值而报错。
解决方案
翻案一:
数据传输使用完整的插入语句,影响传输性能。
方案二:
临时修改max_allowed_packet参数,
mysql> set global max_allowed_packet = 1024102416;`
该命令将max_allowed_packet 临时修改为16M。
修改完成后,exit当前连接,重新连接mysql再执行下面的命令查看效果。
mysql> show VARIABLES like '%max_allowed_packet%';
方案三:
永久修改max_allowed_packet参数,执行:
mysql --help | grep my.cnf
找到 my.cnf 文件,在 my.cnf 中加入max_allowed_packet=16M
,修改保存后重启mysql服务即可生效。