1. 程式人生 > >Packet for query is too large (8129741 > 4194304)

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%';

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