服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - 数据库:MySQL参数Max_Allowed_Packet 介绍

数据库:MySQL参数Max_Allowed_Packet 介绍

2024-01-22 14:14小明互联网技术分享社区 Mysql

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

数据库:MySQL参数Max_Allowed_Packet 介绍

1、参数作用

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

2、问题场景

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

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

会看到如下的报错信息:

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参数的大小,从而满足业务数据的保存,当然设置的大小要根据实际的业务需要,并不是越大越好,要设置合理的数据长度。

http://www.tuohang.net/article/268311.htm

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 -uroot
mysql> 
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。

原文地址:https://mp.weixin.qq.com/s/uJWMXvz9TqafMUcWgqKVdQ

延伸 · 阅读

精彩推荐
  • Mysql19个MySQL性能优化要点解析

    19个MySQL性能优化要点解析

    这篇文章主要介绍了19个MySQL性能优化要点,并对其都进行了深入解析,感兴趣的小伙伴们可以参考一下 ...

    MYSQL教程网5012020-05-16
  • Mysqlmysql如何获取时间整点

    mysql如何获取时间整点

    这篇文章主要介绍了mysql如何获取时间整点问题,具有很好的的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    清欢7572023-02-09
  • MysqlWindows10下mysql 8.0.19 winx64安装教程及修改初始密码

    Windows10下mysql 8.0.19 winx64安装教程及修改初始密码

    这篇文章主要为大家详细介绍了Windows10下mysql 8.0.19 winx64安装教程及修改初始密码,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们...

    Boys_Wu7472021-01-05
  • MysqlMYSQL主从库不同步故障一例解决方法

    MYSQL主从库不同步故障一例解决方法

    第一次做完主从库同步后正常,但工作过程中发现有一个库的数据库没有同步起来,在另外一个mysql(3307)中 ...

    mysql教程网4062019-11-08
  • MysqlMySQL交换分区的实例详解

    MySQL交换分区的实例详解

    这篇文章主要介绍了MySQL交换分区的实例详解的相关资料,需要的朋友可以参考下 ...

    MYSQL教程网2262020-08-01
  • MysqlMySQL存储过程使用解析

    MySQL存储过程使用解析

    存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。目的是为了完成特定功能的SQL语句集,经编译创建并保存在...

    数据运营与数据分析2262020-11-02
  • MysqlMySql关于null的函数使用分享

    MySql关于null的函数使用分享

    这篇文章主要介绍了MySql中null的函数使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    东京易冷12202021-08-17
  • Mysql详解MySql Date函数

    详解MySql Date函数

    这篇文章主要介绍了MySql Date函数的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...

    linux超4152019-07-07