mysql 导入数据时报错Multi-statement transaction required more than ‘max_binlog_cache_size‘ 的解决方法

文章讲述了在MySQL5.7.21中,由于binlog_cache_size设置不当导致的问题,建议根据事务需求调整内存缓存,避免内存消耗过大或频繁使用临时文件。还提供了查看和设置相关参数的方法。
摘要由CSDN通过智能技术生成

在使用mysql导入数据时,出现该问题,原因是该参数值设置较低引发的。

1.出现该问题的数据库版本:5.7.21

2.参数说明:
binlog_cache_disk_use表示binlog_cache_size设置的内存不足导致缓存二进制日志用到临时文件的次数;
binlog_cache_use表示使用binlog_cache_size缓存的次数;
当binlog_cache_disk_use值比较大时,可以考虑适当调高binlog_cache_size对应的值;
binlog_cache_disk_use若等于0,表示不需要使用临时文件,内存cache足够。若没有long_transaction,64M是偏大的;
max_binlog_cache_size表示binlog能够使用的最大cache内存大小;
当执行多语句事务时,所有session使用的内存超过max_binlog_cache_size值时,就会报错“Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage”;
注意:

(1)当该值设置太大,会比较消耗内存资源;设置太小又会使用导临时文件,即disk.

(2)该值设置的值应保持为2的幂次方

3.参数值查看及设置方法:

(1)通过mysql命令查看和设置

mysql> show variables like '%binlog_%size%';
+----------------------------+----------------------+
| Variable_name | Value |
+----------------------------+----------------------+
| binlog_cache_size | 1048576 |
| binlog_stmt_cache_size | 32768 |
| max_binlog_cache_size | 2147483648 |
| max_binlog_size | 1073741824 |
| max_binlog_stmt_cache_size | 18446744073709547520 |
+----------------------------+----------------------+
5 rows in set (0.01 sec)

(2)通过云平台控制台 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值