mysql复制过滤重复如何解决
mysql 如何 解决 复制 重复 过滤
2023-06-13 09:14:41 时间
1、replicate_do_db和replicate_ignore_db不要同时出现。容易出现混淆。也是毫无意义的。
Replicate_Do_DB:db1
Replicate_Ignore_DB:db2
statement模式:
使用use语句
usedb1;insertintotb1values(1);
usedb2;insertintotb2values(2);
以上在slave上均能正确复制,tb1有数据,tb2没有数据。
不使用use语句
insertintodb1.tb1values(11);
insertintodb2.tb2values(11);
结果tb1没有数据,tb2也没有数据(按照文档上来讲,应该有的)
row模式:
无论是否使用use语句,均能正确复制
小结:对于statement模式,SQL语句必须使用use语句,并设置设置多个replicate_do_db来复制多个DB。
2、只进行表级别过滤的时候,对于statement模式,无论是否使用use语句,均能正确复制。row模式也是可以的。(表名它匹配的表的全名:数据库名+表名)
replicate_do_table=db1.tb1
statement模式:
usedb1;insertintotb1values(22);
insertintodb1.tb1values(22);
两者的复制结果一致。
(同样do和ignore不要混用,除非出现过滤DB的情况)
3、有DB过滤规则的时候,statment模式必须使用USE语句,不能出现db.表名,db.视图,db.存储程序这样的形式。row模式完胜!
replicate-ignore-db=db1
replicate-do-table=db2.tbl2
USEdb1;
INSERTINTOdb2.tbl2VALUES(1);
row模式下,
默认DB不是db1,所以跳过第一条规则,执行表的规则,行被插入
statement模式下,
insert语句被忽略,表的过滤规则已经在DB级别停止,所以没有做检查。
Replicate_Do_DB:db1
Replicate_Ignore_DB:db2
statement模式:
使用use语句
usedb1;insertintotb1values(1);
usedb2;insertintotb2values(2);
以上在slave上均能正确复制,tb1有数据,tb2没有数据。
不使用use语句
insertintodb1.tb1values(11);
insertintodb2.tb2values(11);
结果tb1没有数据,tb2也没有数据(按照文档上来讲,应该有的)
row模式:
无论是否使用use语句,均能正确复制
小结:对于statement模式,SQL语句必须使用use语句,并设置设置多个replicate_do_db来复制多个DB。
2、只进行表级别过滤的时候,对于statement模式,无论是否使用use语句,均能正确复制。row模式也是可以的。(表名它匹配的表的全名:数据库名+表名)
replicate_do_table=db1.tb1
statement模式:
usedb1;insertintotb1values(22);
insertintodb1.tb1values(22);
两者的复制结果一致。
(同样do和ignore不要混用,除非出现过滤DB的情况)
3、有DB过滤规则的时候,statment模式必须使用USE语句,不能出现db.表名,db.视图,db.存储程序这样的形式。row模式完胜!
replicate-ignore-db=db1
replicate-do-table=db2.tbl2
USEdb1;
INSERTINTOdb2.tbl2VALUES(1);
row模式下,
默认DB不是db1,所以跳过第一条规则,执行表的规则,行被插入
statement模式下,
insert语句被忽略,表的过滤规则已经在DB级别停止,所以没有做检查。
相关文章
- 深入学习:MySQL如何添加数据(mysql如何添加数据)
- MySQL实现表数据同步的技巧(mysql同步表数据)
- 解决MySQL数据库断开连接问题(mysql数据库断开连接)
- 研究MySQL下如何设置外键(mysql中如何定义外键)
- 面试之道:完整MySQL面试题大全(mysql面试题大全)
- MySQL异常连接:排查与解决(mysql异常连接)
- 简易指南:如何在终端连接MySQL数据库(终端连接mysql数据库)
- 使用易语言操作MySQL数据库(易语言调用mysql)
- MySQL加密函数:保护数据安全(mysql加密函数)
- 怎么办MySQL启动闪退,应该如何解决?(启动mysql闪退)
- 解决MySQL错误193:最佳实践(mysql错误193)
- MySQL数据库升级攻略:详解25字中如何全面升级您的数据库。(mysql数据库如何升级)
- MySQL表结构合并:优化数据库性能的实用技巧(mysql表结构合并)
- 如何使用Mysql远程导出数据表?(mysql导出远程)
- 快速掌握MySQL:如何进入数据库?(mysql如何进入)
- 如何创建MySQL数据库?25步教你建库(mysql数据库建库)
- 解决MySQL与PHP配置问题的实战技巧(mysql php 配置)
- MySQL 跨库视图技术的应用(mysql 跨库 视图)
- 如何使用MySQL连接技术(怎么连接 mysql)
- MySQL中如何使用NVL2函数(mysql中nvl2)
- C语言开发MySQL用户注册系统(c mysql注册)
- 未创建MySQL中的IDC语言如何实现(c mysql未创建id)
- 如何设置MySQL中BLOB字段的长度限制(mysql中blob长度)
- MySQL分配机制优化,解决分配不均等问题(mysql不均等分配)
- MySQL时间段限制如何解决不在时间段内的问题(mysql 不在时间段内)
- MySQL如何安装并不升级(mysql不升级安装)
- 如何快速下载和安装MySQL(mysql下载安装文件)
- MySQL如何获取上一次查询结果的行数(mysql 上一次 行数)