問題描述:
Err [Imp] 1153 - Got a packet bigger than 'max_allowed_packet' bytes
問題原因:
mysql默認(rèn)max_allowed_packet=1M,使用navicat導(dǎo)入數(shù)據(jù)的時候,默認(rèn)使用的是擴展插入語句波岛,即:
mysql> insert into tablename (cloum1,cloum2,...) values (value1,value2,...),(value1,value2,...),...;
使得單個數(shù)據(jù)包大小超過max_allowed_packet的值而報錯。
navicat數(shù)據(jù)傳輸
https://www.navicat.com.cn/manual/online_manual/cn/navicat/win_manual/index.html
解決方案
翻案一:
數(shù)據(jù)傳輸使用完整的插入語句酱畅,影響傳輸性能。
方案二:
臨時修改max_allowed_packet參數(shù)江场,
mysql> set global max_allowed_packet = 1024102416;`
該命令將max_allowed_packet 臨時修改為16M纺酸。
修改完成后,exit當(dāng)前連接址否,重新連接mysql再執(zhí)行下面的命令查看效果餐蔬。
mysql> show VARIABLES like '%max_allowed_packet%';
方案三:
永久修改max_allowed_packet參數(shù),執(zhí)行:
mysql --help | grep my.cnf
找到 my.cnf 文件在张,在 my.cnf 中加入max_allowed_packet=16M
用含,修改保存后重啟mysql服務(wù)即可生效。