关于replicate_do_db和replicate_ignore_db的坑
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,介绍MySQL5.7官方文档关于相关参数的介绍:https://dev.mysql.com/doc/refman/5.7/en/change-replication-filter.html在5.7版本
千家信息网最后更新 2025年11月07日关于replicate_do_db和replicate_ignore_db的坑
介绍
MySQL5.7官方文档关于相关参数的介绍:https://dev.mysql.com/doc/refman/5.7/en/change-replication-filter.html
在5.7版本支持动态修改,之前的版本需要重启数据库:
STOP SLAVE SQL_THREAD;CHANGE REPLICATION FILTER REPLICATE_IGNORE_DB=(demo);START SLAVE SQL_THREAD;问题描述
在主库执行语句,如果不使用use db;
创建新表的语句不会在从库执行,进而导致主从错误
场景复现
从库配置:
replicate-ignore-db = testreplicate-do-db = abc主库操作:
22:29:04test>use test;Database changed22: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 changed22: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: NULLMaster_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: 01 row in set (0.00 sec)解决问题
更改从库配置:
#replicate-ignore-db = test#replicate-do-db = abcreplicate_wild_do_table = abc.%replicate_wild_ignore_table = test.%主库操作:
Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 65Server version: 5.6.35-log Source distributionCopyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.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 changedcaopeng@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: 0Master_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: 01 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
参数
版本
状态
语句
问题
配置
两个
主从
动态
场景
官方
数据
数据库
文档
线程
错误
推荐
支持
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
hp服务器 黄灯闪烁
在线考试软件开发哪家好
ruby 服务器
修改数据库表的字符串长度
普陀区数据存储服务器
xml数据库是关系型吗
怎么使用java连接数据库
注重网络安全主题板报
学院表数据库
游戏管理服务器设计
维也纳酒店网络安全吗
丁振国教授的数据库原理与应用
一定要注意网络安全英文
临沂ios软件开发系统
土地证和土地利用数据库
软件开发 律师函
国家网络安全政策的优越性
智能通用运动控制器软件开发
滨海高新区网络安全宣传周
浪潮服务器 风扇
网络安全专家小组组长
淮安互联网科技公司
细化机关网络安全管理制度
网络安全周照片
数据库表在哪里找
如何给数据库插入图片
数据库应用技术基础问题
一个服务器几个域名
网络安全学好了是黑客学不好
怎么复制数据库到自己的文件夹