ERROR 1197 (HY000)问题原因及解决方法
前言
下面介绍的是使用mysql时,1197的问题原因及解决方法。其常见于执行sql语句报错和主从同步报错。
报错如下
ERROR 1197 (HY000) : Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage; increase this mysqld variable and try again
问题原因
简述
我们在做mysql的主备的时候,一定要保证主与从的配置的缓存等参数的一致性,可以避免各种因为参数不一致导致的问题。如果在其中一台修改了参数,其他的几台也要进行修改。
【1】执行sql语句报错
执行该条sql语句其事务影响的数据量超过max_binlog_cache_size的大小,导致报错。
就像是你正在吃一个比你的嘴要大的冰淇淋,你非要一口吃进去,当然就不会成功了。解决方法是,要么一口一口吃,要么把你的嘴扩大。
【2】主从同步中报错
主与从的max_binlog_cache_size的大小配置不相同,也会导致报这个错误。
就像是一个机械的孔,原来的孔的直径扩大了,不更换匹配的螺丝,就无法拧住。解决方法是,更换相匹配的螺丝才能拧住洞口。
【3】补充
mysql是采用二进制,记录日志的(binlog)。
其记录日志的过程为:数据库先把binlog写进binlog_cache中,然后再从缓存中把binlog日志写入磁盘中。
binlog_cache_size和max_binlog_cache_size就是用来控制binlog_cache大小的。binlog_cache_size :表示为每个session(事务)分配的内存的大小,即在事务的过程中用来存储二进制日志的缓存大小。max_binlog_cache_size :表示所有会话加在一起的binlog 能够使用的最大缓存大小,即在执行多语句事务时 ,所有会话的binlog使用最大内存 。(max_binlog_cache_size最小值是4096字节,最大值在32位的系统中是4G,64位的是16P)
解决方法
【1】执行sql语句报错解决方法一
通常是大事务造成的,且大事务还容易造成主从延时。建议将此事务分解为小事务执行。即将此sql语句进行拆分为多句sql,使每句sql的事务影响的数据量减小,就像将一大块冰淇淋分开吃。
强烈建议使用此方法,无需对数据库参数进行调整。
例如:
UPDATE user_info SET user_status=2 WHERE user_status=3 AND (TYPE=2 OR TYPE=3);可拆分如下(也可拆分更小)UPDATE user_info SET user_status=2 WHERE user_status=3 AND TYPE=2;
UPDATE user_info SET user_status=2 WHERE user_status=3 AND TYPE=3;或
UPDATE user_info SET user_status=2 WHERE user_status=3 AND TYPE=2 AND id<10000000;
【2】执行sql语句报错解决方法二
根据实际情况,调整数据库中max_binlog_cache_size参数,最小值是4096字节,最大值在32位的系统中是4G,64位的是16P。就像是调整你的嘴的大小,以便于塞入整个冰淇淋。
设置太大,会消耗大量内存资源;设置太小,会使用临时文件。
不建议,操作不当可能导致主从出现问题。如使用此方法,从库也需要修改为相同参数,避免主从同步失败。
<1>查看全局max_binlog_cache_size的大小
show GLOBAL variables like 'max_binlog_cache_size';
<2>查看当前会话max_binlog_cache_size的大小
show session variables like 'max_binlog_cache_size';
<3>修改参数
根据实际情况修改大小,但是一定要大于你查到的参数,否则无用;如参数不够,仍需往大调。
修改当前会话的max_binlog_cache_size的大小
set session max_binlog_cache_size=500000000;
或
修改全局max_binlog_cache_size的大小
set global binlog_cache_size=500000000;
<4>修改从库的参数
从库的该参数的大小,要与主库设置的一致
stop slave;
set global max_binlog_cache_size=500000000;
start slave;
【3】主从同步中报错解决方法
主与从的max_binlog_cache_size的大小配置不相同导致,要将主从的max_binlog_cache_size的大小调为一致。
<1>查看主库的max_binlog_cache_size的大小
show GLOBAL variables like 'max_binlog_cache_size';
<2>查看从库的max_binlog_cache_size的大小
show GLOBAL variables like 'max_binlog_cache_size';
<3>修改从库的max_binlog_cache_size的大小与主库一致
stop slave;
set global max_binlog_cache_size=500000000;
start slave;
ERROR 1197 (HY000)问题原因及解决方法相关推荐
- Linux MySQl 5.7.17 MySQL ERROR 1366(HY000):Incorrect string value 解决方法
MySQL ERROR 1366(HY000):Incorrect string value,在往数据库中插入中文的时候会出现. 这也就是编码问题,网上大部分都是说设置下配置文件中的设置,而可悲的是在 ...
- linux mysql 1366_Linux MySQl 5.7.17 MySQL ERROR 1366(HY000):Incorrect string value 解决方法
MySQL ERROR 1366(HY000):Incorrect string value,在往数据库中插入中文的时候会出现. 这也就是编码问题,网上大部分都是说设置下配置文件中的设置,而可悲的是在 ...
- mysql的ERROR 1231 (42000)问题原因及解决方法
报错如下: ERROR 1231 (42000): Variable 'time_zone' can't be set to the value of 'NULL' 常见于使用source执行sql文 ...
- error: LNK2019与error: LNK1120可能的原因及解决方法
今天又碰到了报错"LNK:2019"和"LNK:1120",记录一下. user_interface.obj:-1: error: LNK2019: 无法解析的 ...
- 启动pip时,< Fatal error in launcher: Unable to create process using ‘“‘ >问题的原因及解决方法
启动pip时,< Fatal error in launcher: Unable to create process using '"' >问题的原因及解决方法 参考文章: (1 ...
- Keil 提示error C231: ‘INT0‘: redefinition的原因及其解决方法
文章目录 1. 编译现象 2. 分析原因 3. 解决方法 1. 编译现象 2. 分析原因 redefinition 中文意思是 "重复定义".纵览我所写的程序,只有此处首次出现 I ...
- Error【1146】:Table 'xxx.xxx' doesn't exist问题原因及解决方法
前言 我们在使用mysql数据库的时候,有时会因为各种误操作而导致各种问题.下面介绍的导致1146报错的原因及解决方法. 原因 由报错Table 'xxx.xxxxx' doesn't exist可知 ...
- mysql 死锁原因_Mysql并发时经典常见的死锁原因及解决方法
1.mysql都有什么锁 MySQL有三种锁的级别:页级.表级.行级. 表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现死锁:锁定粒 ...
- Nginx 502 Bad Gateway 错误的原因及解决方法
2019独角兽企业重金招聘Python工程师标准>>> 刚才在调试程序的时候,居然服务器502错误,昨天晚上也发生了,好像我没有做非常规的操作. 然后网上寻找了下答案, 把一些原因及 ...
最新文章
- go语言中的多语言文本
- Science:产前母体感染促进后代的组织特异性免疫和炎症
- 这里提供了在Linux上显示某个进程的线程的几种方式
- 吉麦新能源与联想签订战略合作协议,共同拥抱智能网联汽车升维时代
- 利用栈解决深度搜索问题
- easyui dialog 不执行页面js_Spring Security(六):前端菜单,角色权限页面的搭建
- VMware中linux访问共享文件夹设置流程
- HSPF(Hydrological Simulation Program Fortran)模型应用
- Linux周立功CAN驱动安装指导
- Kotlin | Kotlin教程
- web前端开发面试题-基础篇
- linux软键盘怎么调出来,软键盘怎么关?软键盘关闭方法
- linux centos7 关于Python模拟浏览器踩坑(转载)
- CSS 中的 background 背景属性命令大全
- leetcode零散题汇总
- 磷酸铁锂电池充电过压保护
- 计算机英语名词简释(轉載)
- c++高级编程学习笔记5
- 织梦dedecms淘宝登入插件
- PXI/PXIe控制器 4Link架构 16GB带宽 兼容主流PXIe机箱 设计文件
热门文章
- 亚马逊云科技re:Invent现场访谈:医疗健康行业的云上未来
- IDEA 文件夹颜色对目录的影响分析
- ABAP CDS(Core Data Service)的创建和使用
- android 录音 m4a
- vue拖拽盒子;vue移动
- c语言嵌套结构体数组,第22节 C语言结构体之结构体嵌套、结构体指针与结构体数组的代码实现...
- P2690 [USACO04NOV]Apple Catching G 题解
- 微信小程序搜索功能的实现(模糊搜索、带历史记录)
- PX4从放弃到精通(二十四):自定义机型
- 计算机蓝屏代码0xc0000020,Win10运行程序提示“损坏的映像 错误0xc0000020”解决方法图文教程...