mysql主从复制,指定库和表
2025-06-05 18:04
MySQL
SQL Server
Oracle
MySQL
PostgreSQL
NoSQL
大数据
其他数据库
Windows
Windows Server
Linux
macOS
嵌入式
APACHE
NGINX
redis
Docker
git
互联网
tomcat
Html/Css
JavaScript
jQuery
HTML5
Angular
React
Vue
小程序
架构设计
面向对象
设计模式
领域驱动设计
Android开发
iOS开发
Flutter
鸿蒙
其他手机开发
敏捷开发
项目与团队管理
软件工程其他
.NET
Java
Python
Go
PHP
C++
Ruby
Swift
C语言
Erlang
Delphi
Scala
R语言
Verilog
Dart
Rust
其他语言
asp
nodejs
读书区
翻译区
求职面试
计算机图形学
软件测试
菜谱
SEO技术
摄影
生活技巧
25
0
0
0
标题录入
封面图
在 MySQL 的主从复制中,默认情况下是复制整个数据库的所有数据。如果你只想复制特定的数据库或特定的表,可以通过配置 `replicate-do-db`、`replicate-ignore-db`、`replicate-do-table` 和 `replicate-ignore-table` 等选项来实现。 以下是具体的操作步骤: ### 1. 配置主服务器 (Master) 确保主服务器已经启用了二进制日志(binary log),并且可以正确记录所有需要复制的数据操作。 ```sql # 确保主服务器的 my.cnf 文件中有以下配置 [mysqld] log-bin=mysql-bin server-id=1 ``` 然后重启 MySQL 服务以应用更改。 ### 2. 配置从服务器 (Slave) 在从服务器上设置 `server-id` 并启用从同步功能。 ```sql # 确保从服务器的 my.cnf 文件中有以下配置 [mysqld] server-id=2 relay-log=mysql-relay-bin log-slave-updates=1 read-only=1 ``` 同样,重启 MySQL 服务以应用更改。 ### 3. 配置只复制特定数据库 如果你想只复制某些数据库,可以在从服务器上设置 `replicate-do-db` 或 `replicate-ignore-db`。 #### 使用 `replicate-do-db` 只复制指定的数据库。 ```sql CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replica_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1234, REPLICATE_DO_DB='database_name'; ``` #### 使用 `replicate-ignore-db` 忽略指定的数据库。 ```sql CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replica_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1234, REPLICATE_IGNORE_DB='database_name'; ``` ### 4. 配置只复制特定表 如果你想只复制某些表,可以使用 `replicate-do-table` 或 `replicate-ignore-table`。 #### 使用 `replicate-do-table` 只复制指定的表。 ```sql CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replica_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1234, REPLICATE_DO_TABLE='database_name.table_name'; ``` #### 使用 `replicate-ignore-table` 忽略指定的表。 ```sql CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replica_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1234, REPLICATE_IGNORE_TABLE='database_name.table_name'; ``` ### 5. 开始同步 在从服务器上启动同步: ```sql START SLAVE; ``` ### 6. 检查同步状态 你可以检查从服务器的同步状态: ```sql SHOW SLAVE STATUS\G ``` 重点关注以下两个字段: - `Slave_IO_Running`: 应该为 `Yes` - `Slave_SQL_Running`: 应该为 `Yes` ### 注意事项 - 如果你同时使用了 `replicate-do-db` 和 `replicate-ignore-db`,则 `replicate-ignore-db` 的优先级更高。 - 如果你同时使用了 `replicate-do-table` 和 `replicate-ignore-table`,则 `replicate-ignore-table` 的优先级更高。 - 确保主服务器上的数据库和表名称与从服务器上的配置一致,否则可能会导致复制失败。 通过以上配置,你可以精确控制 MySQL 主从复制中哪些数据库或表会被复制。
上一篇:
mysql group by,count用法
标题录入,一次不能超过6条
孤独与无聊的定义
T:0.009263s,M:158.35 KB
返回顶部
留言
留言
评论