mysql参数设置--max_allowed_packet 值如何调整?
概述
MySQL根据配置文件会限制Server接受的数据包大小,有时候大的插入和更新会受 max_allowed_packet 参数限制,导致大数据写入或者更新失败。
下面介绍下最近碰到的问题及修改该参数的方法。
问题
因为最近的运营系统运行报错,查看tomcat日志提示The driver has not received any packets from the server,属于mysql数据库限制Server接受的数据包问题。
mysql数据库在写入大数据时,因为默认的配置太小,插入和更新操作会因为 max_allowed_packet 参数限制,而导致失败。修改增加max_allowed_packet=100M后报错解决。
查看目前配置:
mysql> show VARIABLES like 'max_allowed_packet';

max_allowed_packet的单位为字节:
-- 转化为Mb,就是1024Mb mysql> select 1073741824/1024/1024;

修改方法1-配置文件修改
可以编辑my.cnf,在[mysqld]段或者mysql的server配置段进行修改。
max_allowed_packet = 100M
修改my.cnf,配置要重载才能生效
这里大家根据需要配置就行了。
修改方法2-命令修改
参数生效范围为global,不是session. 如果服务器重启设置会失效
set global max_allowed_packet = 1024*1024*1024
这里还是比较推荐第一个方法,如果实在不想重启可以用这个方式。

max_allowed_packet 值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败,为了数据完整性,需要考虑到事务因素。
相关推荐
-
MySQL 安装失败,提示Apply Security Settings 的处理办法
MySQL 安装失败,提示Apply Security Settings 的处理办法2025-04-20 01:54:57 -
MySQL事务隔离级别详解2025-04-20 01:44:01
-
一文说清nginx规则匹配(含案例分析)2025-04-20 01:10:02
-
运维服务篇:Nginx常用功能(rewrite重定向/location定位等)
运维服务篇:Nginx常用功能(rewrite重定向/location定位等)2025-04-20 00:55:25 -
php定义变量规则不能包含哪些字符?2025-04-20 00:27:24