max_allowed_packet参数是指mysql服务器端和客户端在一次传送数据包的过程当中最大允许的数据包大小。如果超过了设置的最大长度,则会数据库保持数据失败。
2、问题场景●有时候业务的需要,可能会存在某些字段数据长度非常大(比如富文本编辑器里面的内容),造成插入和更新数据库会被max_allowed_packet参数限制掉,导致数据库操作失败。
●将本地数据库迁移到远程数据库时运行sql错误。错误信息是max_allowed_packet
会看到如下的报错信息:
Packetforqueryistoolarge(76).Youcanchangethisvalueontheserverbysettingthemax_allowed_packet’variable.
这个时候需要设置max_allowed_packet参数的大小,从而满足业务数据的保存,当然设置的大小要根据实际的业务需要,并不是越大越好,要设置合理的数据长度。
、查询当前数据库设置的大小查询当前数据库设置情况,下面两种查询SQL均可以
showvariableslike‘%max_allowed_packet%’;select
max_allowed_packet;setglobalmax_allowed_packet=**;
4、如何调整配置4.1通过修改配置文件,需要重启mysql(推荐)●Linux操作系统修改my.cnf文件
vim/etc/my.cnf[mysqld]max_allowed_packet=M
●Windows5.7解压版一般都是修改my.ini文件
[mysqld]max_allowed_packet=M4.2命令行方式(不推荐)
mysqlsetglobalmax_allowed_packet=**;mysqlexit[root
localhostopt]#[rootlocalhostopt]#mysql-urootmysqlmysqlselectmax_allowed_packet;+----------------------+max_allowed_packet+----------------------+
+----------------------+1rowinset(0.00sec)mysql
注意:
●通过命令行方式修改时,不能用M、G,只能这算成字节数设置。使用配置文件修改才允许设置M、G单位。●命令行修改之后,需要退出当前回话(关闭当前mysqlserver链接),然后重新登录才能查看修改后的值。通过命令行修改只能临时生效,如果下次数据库重启后对应的配置就会又复原了,因为重启的时候加载的是配置文件里面的配置项。●max_allowed_packet最大值是1G(),如果设置超过1G,查看最终生效结果也只有1G。