我在寫程序時將圖片存入數據庫時
出現
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%';
成功修改成你想要的大小。