Mysql数据库'Got a packet bigger than‘max_allowed_packet’bytes'的解决方案
采集数据时,总有几条入不了库。尝试手动入库的时候,发生了报错。
运行环境 Runtime environment
1 | 操作系统: Windos10 |
症状
从网上将数据复制下来,用Navicat填写进相应字段中,按保存发生了错误。
1 | Got a packet bigger than‘max_allowed_packet’bytes |
问题原因
该字段存储的是站源的原生接口json数据。
字段类型为json类型,长度应该是足够的,但是也存不进去。
发现是由于max_allowed_packet的值设置过小的原因,
只需要将max_allowed_packet值设置大一点就OK了。
解决办法
通过终端进入mysql控制台,输入如下命令可以查看max_allowed_packet值的大小。
show VARIABLES like ‘%max_allowed_packet%’;
显示的结果:
1 | +——————–+———+ |
以上说明目前的配置是:1M
需要搞大max_allowed_packet的值:
set global max_allowed_packet = 1048576*10
退出mysql命令行,然后重新登录。
show VARIABLES like ‘%max_allowed_packet%’;
设置完之后,再重新导入数据,OK,一切正常。
注意
使用这种方法,重启服务器之后又恢复默认值了。
只是导数据的时候临时将其值改大,
导完之后尽量让其恢复原值,
因为max_allowed_packet设置过大可能会导致服务器太忙来不及接收,
网络差的时候也可能会出现丢包的现象。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 快乐咸鱼のRaXianch窝!
评论
WalineValine