Packet for query is too large (8129741 > 4194304)

我在寫程序時將圖片存入數據庫時

出現

Packet for query is too large (8129741 > 4194304). You can change this value on the server by setting the max_allowed_packet' variable. 

數據庫的原始設置max_allowed_packet太小

我的是window10系統

兩個方法:

1、

修改my.ini(或者my-default.ini),修改前關掉MySQL的服務,再開(因爲我沒有關,輸入查詢語句後大小一直沒變)

它在你的mysql-5.7.21-winx64的存放路徑下(我的D:\Program Files\Mysql\mysql-5.7.21-winx64

在該文件下添加

[mysql]

max_allowed_packet=300*12024*1024

我修改成300M,看你自己想修改成多少

然後在數據庫中輸入(想查詢時再打開)

SHOW VARIABLES LIKE '%max_allowed_packet%';

2、使用控制檯修改

1)首先關掉MySQL服務(計算機管理---》服務和應用程序---》服務——》找到MySQL)

2)用管理員運行cmd,(window10是 :Windows PowerShell(管理員),位置在下圖,右鍵就能看到)

打開一個shell窗口(看白色字體部分),注意文win10不能識別文件名的空格,有空格的文件名需要用雙引號引起來,看我蝦米那的Program Files就是用雙引號

進入mysql-5.7.21-winx64的bin路徑下

輸入

mysqld --skip-grant-tables

3)結果如上圖,然後重新打開一個shell(管理員),來到該路徑下

輸入

mysql -u root

set global max_allowed_packet = 2*1024*1024*10;

 SHOW VARIABLES LIKE '%max_allowed_packet%';(查詢出來的還是原來的大小)

然後打開數據庫的服務,

打開數據庫

在查詢語句的界面輸入

SHOW VARIABLES LIKE '%max_allowed_packet%';

成功修改成你想要的大小。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章