当前位置:首页 >时尚 >数据库:MySQL参数Max 则会数据库保持数据失败

数据库:MySQL参数Max 则会数据库保持数据失败

2024-06-30 20:52:55 [百科] 来源:避面尹邢网

数据库:MySQL参数Max_Allowed_Packet 介绍

作者:郝光明 数据库 MySQL Max_Allowed_Packet参数是数据指MySQL服务器端和客户端在一次传送数据包的过程当中最大允许的数据包大小。如果超过了设置的参数最大长度,则会数据库保持数据失败。数据

1、参数参数作用

max_allowed_packet参数是数据指mysql服务器端和客户端在一次传送数据包的过程当中最大允许的数据包大小。如果超过了设置的参数最大长度,则会数据库保持数据失败。数据

数据库:MySQL参数Max 则会数据库保持数据失败

2、参数问题场景

● 有时候业务的数据需要,可能会存在某些字段数据长度非常大(比如富文本编辑器里面的参数内容),造成插入和更新数据库会被max_allowed_packet 参数限制掉,数据导致数据库操作失败。参数

数据库:MySQL参数Max 则会数据库保持数据失败

● 将本地数据库迁移到远程数据库时运行sql错误。数据错误信息是参数max_allowed_packet

数据库:MySQL参数Max 则会数据库保持数据失败

会看到如下的报错信息:

Packet for query is too large (20682943>1048576). You can change this value on the server by setting the max_allowed_packet’ variable.

这个时候需要设置max_allowed_packet参数的大小,从而满足业务数据的数据保存,当然设置的大小要根据实际的业务需要,并不是越大越好,要设置合理的数据长度。

3、查询当前数据库设置的大小

查询当前数据库设置情况,下面两种查询SQL均可以

show variables like ‘%max_allowed_packet%’;select @@max_allowed_packet;

set global max_allowed_packet = 500 * 500 * 1024。

4、如何调整配置

(1)通过修改配置文件,需要重启mysql(推荐)

● Linux 操作系统  修改my.cnf 文件 。

vim /etc/my.cnf[mysqld]max_allowed_packet = 100M

● Windows  5.7解压版一般都是修改  my.ini 文件。

[mysqld]max_allowed_packet = 128M

(2)命令行方式(不推荐)

mysql> set global max_allowed_packet = 100 * 1024 * 1024;mysql> exit[root@localhost opt]# [root@localhost opt]# mysql -urootmysql> mysql> select @@max_allowed_packet;+----------------------+| @@max_allowed_packet |+----------------------+|            104857600 |+----------------------+1 row in set (0.00 sec)mysql>

注意:

● 通过命令行方式修改时,不能用M、G,只能这算成字节数设置。使用配置文件修改才允许设置M、G单位。

● 命令行修改之后,需要退出当前回话(关闭当前mysql server链接),然后重新登录才能查看修改后的值。通过命令行修改只能临时生效,如果下次数据库重启后对应的配置就会又复原了,因为重启的时候加载的是配置文件里面的配置项。

● max_allowed_packet 最大值是1G(1073741824),如果设置超过1G,查看最终生效结果也只有1G。

责任编辑:姜华 来源: 小明互联网技术分享社区 MySQL数据库

(责任编辑:时尚)

    推荐文章
    热点阅读