zoukankan      html  css  js  c++  java
  • mysql max_allowed_packet 设置过小导致记录写入失败

    mysql根据配置文件会限制server接受的数据包大小。

    有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败。

    查看目前配置

    show VARIABLES like '%max_allowed_packet%';

    显示的结果为:

    +--------------------+---------+

    | Variable_name      | Value   |

    +--------------------+---------+

    | max_allowed_packet | 1048576 |

    +--------------------+---------+  

    以上说明目前的配置是:1M

    修改方法

    1、修改配置文件

    可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。

    max_allowed_packet = 20M

    如果找不到my.cnf可以通过

    mysql --help | grep my.cnf

    去寻找my.cnf文件。

    linux下该文件在/etc/下。

    2、在mysql命令行中修改

    在mysql 命令行中运行

    set global max_allowed_packet = 2*1024*1024*10

    然后退出命令行,重启mysql服务,再进入。

    show VARIABLES like '%max_allowed_packet%';

    查看下max_allowed_packet是否编辑成功

     
     注意:该值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败。
  • 相关阅读:
    2.2 范式和反范式
    1.7 关系数据库设计理论
    2.1 选择优化的数据类型
    1.6 间隙锁(next-key locking)
    1.5 MySQL的存储引擎
    1.4 多版本并发控制
    1.3 事物和并发一致性问题
    1.2 并发控制
    1.1 MySQL逻辑架构
    php自定义函数及内部函数----数组处理函数
  • 原文地址:https://www.cnblogs.com/zhang-ke/p/5954390.html
Copyright © 2011-2022 走看看