
MySQL 配置复制过滤,主要是通过在从库(Slave)上设置特定参数,来控制哪些数据库或表的数据需要同步。这种方式适用于只需要部分数据同步的场景,比如只关心某个业务库,而不需要整个实例的所有数据。
1. 使用 replicate-do-db 选择要同步的数据库如果只想同步特定数据库的数据,可以在从库的配置文件中添加 replicate-do-db 参数。
示例:在 my.cnf 或 my.ini 中加入:
[mysqld] replicate-do-db=order_db
这样,只有操作在 order_db 数据库中的语句才会被应用。注意:该选项对跨库操作不敏感,比如主库执行
USE other_db; UPDATE order_db.orders SET status=1;,由于当前数据库不是 order_db,这条语句可能不会被同步。 2. 使用 replicate-ignore-db 忽略某些数据库
如果想排除某些数据库,可以使用 replicate-ignore-db。
示例:[mysqld] replicate-ignore-db=test replicate-ignore-db=temp_db
所有在 test 和 temp_db 数据库上的操作将不会被从库执行。
3. 基于表的过滤:replicate-do-table 和 replicate-ignore-table更细粒度的控制可以通过指定具体的表来实现。
Post AI
博客文章AI生成器
50
查看详情
示例:replicate-do-table=order_db.orders replicate-ignore-table=order_db.logs
仅同步 orders 表,忽略 logs 表。注意:表名必须包含数据库名前缀。
4. 使用通配符过滤表(replicate-wild-do-table)支持通配符匹配,适合有命名规律的表。
示例:replicate-wild-do-table=report_db.sales_* replicate-wild-ignore-table=%.tmp_%
第一行表示同步 report_db 中以 sales_ 开头的所有表;第二行忽略所有数据库中表名包含 tmp_ 的临时表。
这类规则使用 LIKE 语法,% 匹配任意字符,_ 匹配单个字符。
5. 注意事项与限制- 这些过滤规则在从库启动时加载,修改后需重启复制或重新配置生效。
- 基于数据库的过滤(如 replicate-do-db)依赖于当前会话的默认数据库(即 USE db),容易遗漏跨库语句。
- 建议优先使用 replicate-wild-do-table 这类表级过滤,逻辑更清晰,不易出错。
- 主库无需特殊配置,过滤完全由从库控制。
- 使用 GTID 模式时,过滤需更加谨慎,避免导致复制中断或数据不一致。
基本上就这些。根据实际需求选择合适的过滤方式,避免过度依赖数据库级过滤,表级更可控。配置完成后,用
SHOW SLAVE STATUS\G检查复制是否正常运行。
以上就是mysql如何配置复制过滤的详细内容,更多请关注知识资源分享宝库其它相关文章!
相关标签: mysql 配置文件 mysql table 数据库 大家都在看: mysql如何配置复制过滤 mysql如何格式化日期查询 mysql如何查看当前运行状态 mysql如何备份数据以防升级失败 mysql如何在迁移中保持事务完整性






发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。