Mysql You can change this value on the server by setting the max_allowed_packet' variable. 异常(示例

Posted 26个字符的天堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql You can change this value on the server by setting the max_allowed_packet' variable. 异常(示例相关的知识,希望对你有一定的参考价值。

MySQL根据配置文件会限制server接受的数据包大小。技术分享

有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。

查看目前配置, Windows 系统 配置文件为 my.ini, max 系统 配置文件为 my.cnf

此处使用本地数据库操作:

  cmd 进入mysql bin 目录 --》

  登录本地 --》

  mysql -u root -p --》

  登录密码 --》

  show VARIABLES like ‘%max_allowed_packet%‘;

  显示的结果为:

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

  | Variable_name             | Value |

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

  | max_allowed_packet     | 1048576|

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

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

  修改方法

  1) 方法1

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

max_allowed_packet = 20M

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

mysql --help | grep my.cnf

去寻找my.cnf文件。

2) 方法2

(很妥协,很纠结的办法)

进入mysql server

在mysql 命令行中运行

set global max_allowed_packet = 2*1024*1024*10

然后关闭掉这此mysql server链接,再进入。

show VARIABLES like ‘%max_allowed_packet%‘;

查看下max_allowed_packet是否编辑成功

 

经验总结:

在很多台机器上用方法一都没问题,但2011年11月14日遇到一台机器死活都不成功,

使用命令行方式:set global max_allowed_packet = 16M;

也不行,但使用

set global max_allowed_packet = 2*1024*1024*10;
成功了,很是郁闷

技术分享

问题终于找出来了,不是方法的问题,是设置完成后要把命令行退出重新登录查看,看来系统变量的值在登录后会缓存。但在这台机器上使用配置INI文件的方式就是不行,具体原因还没找到。

  

以上是关于Mysql You can change this value on the server by setting the max_allowed_packet' variable. 异常(示例的主要内容,如果未能解决你的问题,请参考以下文章

问题解决:mysql: Commands out of sync; you can‘t run this command now

leetcode1432. Max Difference You Can Get From Changing an Integer

leetcode1432. Max Difference You Can Get From Changing an Integer

Git的commit your changes or stash them before you can merge

Git冲突:commit your changes or stash them before you can merge.

Git冲突:commit your changes or stash them before you can merge.