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%';
成功修改成你想要的大小。