mysql replicate_do_db_关于replicate_do_db和replicate_ignore_db的坑
介绍
在5.7版本支持动态修改,之前的版本需要重启数据库:
STOP SLAVE SQL_THREAD;
CHANGE REPLICATION FILTER REPLICATE_IGNORE_DB=(demo);
START SLAVE SQL_THREAD;
问题描述
在主库执行语句,如果不使用use db;
创建新表的语句不会在从库执行,进而导致主从错误
场景复现
从库配置:
replicate-ignore-db = test
replicate-do-db = abc
主库操作:
22:29:04test>use test;
Database changed
22:30:26test>create table abc.t0417(id int,name varchar(20));
Query OK, 0 rows affected (0.08 sec)
22:31:37abc>use test;
Database changed
22:32:05test>insert into abc.t0417 values(1,'a');
Query OK, 1 row affected (0.02 sec)
从库状态,SQL线程出现报错:
22:31:07abc>show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.136.128
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000015
Read_Master_Log_Pos: 8478
Relay_Log_File: cptest-relay-bin.000007
Relay_Log_Pos: 1292
Relay_Master_Log_File: mysql-bin.000015
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB: abc
Replicate_Ignore_DB: test
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1146
Last_Error: Error executing row event: 'Table 'abc.t0417' doesn't exist'
Skip_Counter: 0
Exec_Master_Log_Pos: 8235
Relay_Log_Space: 1709
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1146
Last_SQL_Error: Error executing row event: 'Table 'abc.t0417' doesn't exist'
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: 4ac80f6d-8063-11e7-9d63-000c291d913c
Master_Info_File: /data/mysql/mysql3309/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State:
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp: 180416 22:32:20
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set: 4ac80f6d-8063-11e7-9d63-000c291d913c:3609-3630
Executed_Gtid_Set: 4ac80f6d-8063-11e7-9d63-000c291d913c:1:3609-3629,
a1c747e9-4170-11e8-883f-000c29c6b279:1
Auto_Position: 0
1 row in set (0.00 sec)
解决问题
更改从库配置:
#replicate-ignore-db = test
#replicate-do-db = abc
replicate_wild_do_table = abc.%
replicate_wild_ignore_table = test.%
主库操作:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 65
Server version: 5.6.35-log Source distribution
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
caopeng@192.168.136.128 00:39:16(none)>use test;
Database changed
caopeng@192.168.136.128 00:39:32test>create table abc.test0417(id int,name varchar(20));
Query OK, 0 rows affected (0.17 sec)
caopeng@192.168.136.128 00:40:25test>insert into abc.test0417 values(1,'b');
Query OK, 1 row affected (0.11 sec)
从库状态:
root@localhost 00:39:06(none)>show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.136.128
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000015
Read_Master_Log_Pos: 9644
Relay_Log_File: cptest-relay-bin.000010
Relay_Log_Pos: 771
Relay_Master_Log_File: mysql-bin.000015
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table: abc.%
Replicate_Wild_Ignore_Table: test.%
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 9644
Relay_Log_Space: 945
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: 4ac80f6d-8063-11e7-9d63-000c291d913c
Master_Info_File: /data/mysql/mysql3309/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set: 4ac80f6d-8063-11e7-9d63-000c291d913c:3609-3635
Executed_Gtid_Set: 4ac80f6d-8063-11e7-9d63-000c291d913c:1:3609-3635,
a1c747e9-4170-11e8-883f-000c29c6b279:1-6
Auto_Position: 0
1 row in set (0.00 sec)
root@localhost 00:40:54(none)>select * from abc.test0417;
+------+------+
| id | name |
+------+------+
| 1 | b |
+------+------+
1 row in set (0.00 sec)
总结
使用replicate_do_db和replicate_ignore_db两个参数时在主库操作需要使用use db;然后再进行其他操作
推荐使用replicate_wild_do_table,
replicate_wild_ignore_table
mysql replicate_do_db_关于replicate_do_db和replicate_ignore_db的坑相关推荐
- mysql replicate_mysql 复制参数replicate_do_db和replicate_ignore_db介绍
演示环境: 1.MySQL5.7.24 二进制安装包 2.master库和slave库都是全新的环境进行配置 3.MySQL开启gtid 并且指定具体的数据库进行同步库 maser 库my.cnf配置 ...
- centos7恢复mysql数据库_MySQL数据库升级迁移填坑记
原库:*.*.101.73/74 系统环境: Suse 12.4 MySQL: 5.7.29 新库:*.*.110.46/47 系统环境:CentOS7.7 64位 MySQL版本: 5.7.30 [ ...
- MySQL大表传输表空间的坑
MySQL大表传输表空间的坑 最近刚帮业务线拆分完数据库, 源环境遗留了一张700G的大表, 虽说现在不用了, 但是业务方还是不希望删掉, 于是打算把这张表迁移到归档库, 这样有需要是还可以查询. 7 ...
- 警惕参数变化,MySQL 8.0 升级避免再次踩坑
MySQL 8.0新特性专栏目录 <MySQL开发规范>过时了,视图查询性能提升了一万倍 你真的会用EXPLAIN么,SQL性能优化王者晋级之路 索引三剑客之降序索引和不可见索引 千呼万唤 ...
- mysql replicate_do_db_使用replicate-rewrite-db 实现复制映射 + Replicate_Wild_Do_Table实现复制过滤...
实验环境:CentOS7.2 + MySQL5.7 node1(192.168.2.171)和node2(192.168.2.172) 为两台不同业务的MySQL服务器. 业务方有个需求,需要将nod ...
- 數據庫ORACLE轉MYSQL存儲過程遇到的坑~(總結)
ORACLE數據庫轉MySQL數據庫遇到的坑 總結 最近在做Oracle轉mysql的工程,遇到的坑是真的多,尤其是存儲過程,以前都沒接觸過類似的知識,最近也差不多轉完了就總結一下.希望能幫到一些人( ...
- mysql allowmultiqueries=true_Mysql批量更新的一个坑-allowMultiQueries=true允许批量更新(转)...
实际上,我们经常会遇到这样的需求,那就是利用Mybatis批量更新或者批量插入,但是,实际上即使Mybatis完美支持你的sql,你也得看看你说操作的数据库是否支持,而阿福,最近就遇到这样的一个坑. ...
- MySql Cluster 集成安装,Centos,坑点集锦
2019独角兽企业重金招聘Python工程师标准>>> 坑点集锦 安装步骤->安装步骤 查看错误->错误集锦 节点作用->节点作用 测试结果->测试结果 [M ...
- mysql+vs检测不到_VS2017 + EF + MySQL 我使用过程中遇到的坑
写在前面: 第一次使用MySQL连接VS的时候本着最新版的应该就是最好的,在MySQL官网下载了最新版的MySQL没有并且安装完成之后,使用MySQLHelper连接MySQL数据库也是正常的,也就没 ...
最新文章
- UVA1455 - Kingdom(并查集 + 线段树)
- Codeforces 809A - Do you want a date?(数学+排序)
- 【推荐】最全的积分墙基础知识大全:积分墙渠道运营那些事儿
- 计算机视觉目标检测算法总结1——简介
- 计算机学部毕业设计答疑记录,毕业论文指导记录怎么写?毕业论文指导记录12篇...
- MTK平台 Android8.1 SD卡驱动能力修改
- 解决GUT GUI中文乱码问题
- 绘制IRB1200机器人工作空间
- 《MIT科技评论》“35位35岁以下科技创新青年”名单出炉!AI领域有5人入选 | 2020中国区...
- 2023-2029全球斑马鱼行业调研及趋势分析报告
- 【某易易盾JS逆向】滑动验证码分析
- Android简易项目SQLite的简单运用——简易记事本
- 计算机efs加密,EFS加密
- 【Linux】linux中的strip命令
- 基于java eclipse+jsp+mysql+servlet+Spring的学生信息管理系统基础版
- CSDN史上最大的非法集资案
- 构建 AWS AMI 镜像(EC2 Image Builder + Terraform)
- 漫画女生怎么画(一步步教你画漫画)
- 2021年11月最新搜狗验证码识别,6位全对正确率高达96%
- 一维恒虚警检测CFAR,雷达回波-检测门限波形图