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