zoukankan      html  css  js  c++  java
  • mysql max_allowed_packet查询和修改


    写入MySQL报错超出 max_allowed_packet 的问题。

    MySQL会根据配置文件会限制server接受的数据包的大小。如果写入大数据时,因为默认的配置太小,插入和更新操作会因为 max_allowed_packet 参数限制,而导致失败。

    查看当前配置:

    mysql> show variables like 'max_allowed_packet';
    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 4194304 |
    +--------------------+---------+
    1 row in set (0.00 sec)

    也可以用select查看:

    mysql> select @@max_allowed_packet;
    +----------------------+
    | @@max_allowed_packet |
    +----------------------+
    |              4194304 |
    +----------------------+
    1 row in set (0.00 sec)

    mysql> 

    max_allowed_packet 如果不设置,默认值在不同的 MySQL 版本表现不同,有的版本默认1M,有的版本默认4M。

    修改方法1(配置文件持久化修改):
    vim /etc/my.cnf
    [mysqld]
    max_allowed_packet = 100M

    注意:修改配置文件以后,需要重启mysql服务才能生效。

    mysql> show variables like '%max_allowed_pack%';
    +--------------------+-----------+
    | Variable_name      | Value     |
    +--------------------+-----------+
    | max_allowed_packet | 104857600 |
    +--------------------+-----------+
    1 row in set (0.00 sec)

    修改方法2(命令行临时修改):

    mysql> set global max_allowed_packet = 100 * 1024 * 1024;
    mysql> exit
    [root@localhost opt]# 
    [root@localhost opt]# mysql -uroot
    mysql> 
    mysql> select @@max_allowed_packet;
    +----------------------+
    | @@max_allowed_packet |
    +----------------------+
    |            104857600 |
    +----------------------+
    1 row in set (0.00 sec)

    mysql> 

    注意:

    1.命令行修改时,不能用M、G,只能这算成字节数设置。配置文件修改才允许设置M、G单位。

    2.命令行修改之后,需要退出当前回话(关闭当前mysql server链接),然后重新登录才能查看修改后的值。通过命令行修改只能临时生效,下次数据库重启后又复原了。

    3.max_allowed_packet 最大值是1G(1073741824),如果设置超过1G,查看最终生效结果也只有1G。

    [mysqld]
    max_allowed_packet = 1G

    mysql> show variables like '%max_allowed_pack%';
    +--------------------+------------+
    | Variable_name      | Value      |
    +--------------------+------------+
    | max_allowed_packet | 1073741824 |
    +--------------------+------------+
    1 row in set (0.00 sec)
    ---------------------


    参考:https://blog.csdn.net/sunny05296/article/details/80446944

  • 相关阅读:
    TensorFlow(五):手写数字识别加强版
    TensorFlow(四):手写数字识别
    TensorFlow(三):非线性回归
    Apache+php搭建
    PHP基础知识(1)
    mysql8.0.11安装
    ffmpeg-20160517-git-bin-v2
    ffmpeg-20160517-git-bin
    Node.js 字体格式转换 ttf2eot ttf2woff ttf2svg
    ffmpeg-20160515-git-bin
  • 原文地址:https://www.cnblogs.com/haoxuanchen2014/p/10148611.html
Copyright © 2011-2022 走看看