配置MySQL复制过滤需在从库设置参数,如replicate-do-db、replicate-ignore-db等,通过my.cnf配置并重启服务生效,优先使用表级过滤避免跨库问题,通过SHOW SLAVE STATUS验证规则。
在MySQL中配置复制过滤规则,主要是通过设置从库(Slave)的复制参数来控制哪些数据库或表的数据需要同步。这类配置通常用于只同步特定数据库或忽略某些不重要的数据,从而节省资源或满足业务需求。
MySQL支持在从库上通过以下参数进行复制过滤:
这些参数可以在my.cnf配置文件中设置,也可以在启动时通过命令行传入。
编辑从库的my.cnf文件,在部分添加所需规则。例如:
[mysqld] # 只复制 db1 和 db2 数据库 replicate-do-db = db1 replicate-do-db = db2忽略 test_db 数据库
replicate-ignore-db = test_db
只复制 db1 下的 user_info 表
replicate-do-table = db1.user_info
忽略 db2 下的 log_% 开头的表
replicate-wild-ignore-table = db2.log_%
修改完成后重启MySQL服务使配置生效。
使用复制过滤时需注意以下几点:
可以通过以下命令查看从库当前的复制状态:
SHOW SLAVE STATUS\G
重点关注以下字段:
B、Replicate_Ignore_DB:显示配置的数据库过滤规则。还可以在主库执行一些测试写入,观察从库是否按预期同步或忽略数据。
基本上就这些。只要理解不同过滤参数的作用范围和限制,就能合理配置适合业务场景的复制规则。不复杂但容易忽略细节,尤其是跨库操作的影响。建议先在测试环境验证后再上线。