mysql 導入時報錯:Got a packet bigger than‘max_allowed_packet’bytes


原因是max_allowed_packet 值設置過小。

網上粘貼一段定義:

max_allowed_packet:指代mysql服務器端和客戶端在一次傳送數據包的過程當中數據包的大小
這個是定義mysql服務器端和客戶端在一次傳送數據包的過程當中數據包的大小
定義過大,比如max_allowed_packet=8092,有可能服務器端太忙,來不及接收,或者網絡太差,會容易造成丟包
定義過小,會因為客戶端可能無法快速接收服務器端發過來的包,一般推薦是4096

網上說有兩種方法:

方法一,直接修改my.cnf(Linux)或者my.ini(windows)的文件,例如:

  max_allowed_packet=10M

  然后重啟MySQL服務。但是我試過之后不行,原因也不得而知。

方法二,通過MySQL自帶的客戶端(黑框界面),通過命令先查看目前的max_allowed_packet 值的大小:

  

show VARIABLES like '%max_allowed_packet%';

  查出來的值的單位是字節(byte)

設置時默認的單位也是字節,比如你要設置為100M,那么應該是100*1024*1024,執行修改命令為:

  

set global max_allowed_packet = 100*1024*1024

修改后需要關掉cmd窗口,然后重新打開,再次查詢,才能看到修改后的新值,否則看到的還是原始值(緩存)。

 ps:具體該為多少,需要視具體情況而定,可能修改之后,還是報同樣的錯誤,沒關系,那就設置的再大一些。我因為sql文件有4個多G,最終將max_allowed_packet設置成了1G(即,1024*1024*1024)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM