美文网首页MySQLmysql 知识库
mysql max_allowed_packet

mysql max_allowed_packet

作者: lconcise | 来源:发表于2018-09-06 20:02 被阅读1次

    问题

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

    解决:

    mysql 命令行模式下

    set global max_allowed_packet = 1024*1024*160;
    

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

    详解:

    mysql 命令行模式下:

    show VARIABLES like '%max_allowed_packet%';
    
    捕获.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 的大小
    结果如图:


    捕获.PNG

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

    相关文章

      网友评论

        本文标题:mysql max_allowed_packet

        本文链接:https://www.haomeiwen.com/subject/tkexgftx.html