<返回更多

mysql参数设置--max_allowed_packet 值如何调整?

2019-04-29    
加入收藏

概述

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';
mysql参数设置--max_allowed_packet 值如何调整?

 

max_allowed_packet的单位为字节:

-- 转化为Mb,就是1024Mb
mysql> select 1073741824/1024/1024;
mysql参数设置--max_allowed_packet 值如何调整?

 


修改方法1-配置文件修改

可以编辑my.cnf,在[mysqld]段或者mysql的server配置段进行修改。

max_allowed_packet = 100M

修改my.cnf,配置要重载才能生效

这里大家根据需要配置就行了。


修改方法2-命令修改

参数生效范围为global,不是session. 如果服务器重启设置会失效

set global max_allowed_packet = 1024*1024*1024

这里还是比较推荐第一个方法,如果实在不想重启可以用这个方式。

mysql参数设置--max_allowed_packet 值如何调整?

 


max_allowed_packet 值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败,为了数据完整性,需要考虑到事务因素。
 

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>