Packets larger than max_allowed_packet are not allowed(mysql数据查询提示:不容许超过容许的最大数据包)解决方案

问题背景:

   首先个人项目运用的时Mysql,在作一个数据更新操做的时候,提示异常:System.Exception:“ExecuteNonQuery:Packets larger than max_allowed_packet are not allowed.”,经过查找了网上的一些方案主要是由于本地数据库运行最大查询的数据包过小的缘由,也正是由于这个运行数据更新一直没法成功,致使后面的操做没法进行。mysql

说明:linux

  通常默认状况下,max_allowed_packet 的包的大小默认时1024*1024(1Mb),你能够首先使用命令:sql

查询状态:show VARIABLES like '%max_allowed_packet%';

  我查出的结果是:max_allowed_packet:1024   没错这就是问题所在。数据库

解决方法:

使用SQL语句来修改限制(3种推荐方式):

将长度限制设置为32MB:

SET GLOBAL max_allowed_packet=32*1024*1024; 

将长度限制设置为1GB(MySQL服务器中容许的最大值):

SET GLOBAL max_allowed_packet=1024*1024*1024; 

直接设置会话SET SESSION:

SET SESSION max_allowed_packet=1024*1024*1024; 

最后使用上面任何一种方式修改好后重启一些数据库,而后在查询数据包的大小是否改变:

show VARIABLES like '%max_allowed_packet%';

 

Linux经过编辑my.cnf来修改,windows经过编辑my.ini配置

中止MySQL服务器。

根据本身的数据库安装环境进行配置:

windows找到安装mysql的位置,打开my.ini进行配置修改:

max_allowed_packet = 32M

 

Linux 修改的是:my.cnf

mysql --help | grep my.cnf

去寻找my.cnf文件

linux下该文件在/etc/下

配置文件修改完成后重启数据库!

相关文章
相关标签/搜索