为了账号安全,请及时绑定邮箱和手机立即绑定

mysql max_allowed_packet

标签:
MySQL

问题

因为业务需求,一个表里一个字段需要存在默认图片的base64,这样数据多了,导致单张表的过大
单张表size 过大,导致导入失败

解决:

mysql 命令行模式下

set global max_allowed_packet = 1024*1024*160;

设置单张表的大小为 160 M;

详解:

mysql 命令行模式下:

show VARIABLES like '%max_allowed_packet%';

webp

捕获.PNG

max_allowed_packet : 单张表的最大允许大小为 4 M;
slave_max_allowed_packet:最大允许值 1 G

max_allowed_packet 针对的是一个事务中的一行记录大小,当一行记录超过了限制的大小,将会报错。sql文件中每次insert完进同一张表的所有数据被称为一个数据包(packet),max_allowed_packet就是来限制这个的大小的阈值,大于这个值,mysql的I/O连接会关闭,就会报这个错。

set global max_allowed_packet = 1024*1024*160;

以上指令为:设置packet 的大小
结果如图:


webp

捕获.PNG

经过测试,MySQL 服务重启,packet 大小恢复默认 4M



作者:lconcise
链接:https://www.jianshu.com/p/13b6f37ddefb


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消