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/下

配置文件修改完成後重啓數據庫!

相關文章
相關標籤/搜索