MySQL问答知识库查询逻辑_MySQL知识库访问异常Packet for query is too large

错误现象

在保存查询时,抛出错误,报知识库访问异常,并且具体错误信息中有以下信息 "Packet for query is too large"。

94f032b6cdae299fd551439abdb4fcf5.png

问题原因

该问题是由于 MySQL 配置中允许Server接受的数据包设置值 max_allowed_packet 太小所导致的。MySQL 默认的安装版中一般将该值设置为“200M”,如下所示:

[mysqld]

max_allowed_packet=200M

查看目前配置:

show VARIABLES like '%max_allowed_packet%';

显示的结果为:

+--------------------+---------+

| Variable_name | Value |

+--------------------+---------+

| max_allowed_packet | 1048576 |

+--------------------+---------+

以上说明目前的配置是:1M

解决方法

可以有两种解决方法,通过修改配置文件、或直接在 MySQL 命令行中修改。

1、修改配置文件

编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。

max_allowed_packet = 200M

如果找不到my.cnf可以通过“mysql --help | grep my.cnf ”命令去寻找my.cnf文件。Linux下该文件在/etc/下,查找my.cnf文件相关命令:find / -name "my.*"

2、在MySQL命令行中修改

在MySQL命令行中运行如下命令:

set global max_allowed_packet = 200*1024*1024

然后退出命令行,重启MySQL服务,再进入,查看下max_allowed_packet是否编辑成功。

show VARIABLES like '%max_allowed_packet%';

注意:该值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值