在使用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)通过云平台控制台