mysql 5.7 主从参数问题 replicate_wild_do_table

问题: 

[Warning] Slave SQL for channel 'master06': Worker 1 failed executing transaction 'e621408d-1441-11eb-a66e-fa163ed39f3f:5' at master log wm_binlog.000002, end_log_pos 1613; Error executing row event: 'Table 'dbwm.table01 ' doesn't exist', Error_code: 1146

从库当前配置:

replicate-do-db = dbwm


现象描述:

在主库执行语句,如果不使用use dbwm 直接执行sql;

create table dbwm.table01 (id int,name varchar(40));

insert into dbwm.table01 values (1,'111'),(2,'222'),(3,'333');

创建新表的语句不会在从库执行,进而导致从(slave)节点错误

解决:

从库:

replicate-do-db = dbwm 替换成 replicate_wild_do_table = dbwm.%


原因:

从库(slave)使用replicate_do_db和replicate_ignore_db两个参数时在主库操作需要使用use

db;然后再进行其他操作,不然从库(slave) 会报 例如: 'Table 'dbwm.table01 ' doesn't exist' 错误.

MySQL执行sql前检查的是当前默认数据库,所以跨库更新语句在Slave上会被忽略。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。