本文详细介绍了 MySQL 主从复制(Master-Slave)及双主双从(Master-Master with Slaves)高可用架构的搭建与配置方法。

参考来源: CNBlogs
1. 原理概述
1.1 主从复制机制
将主数据库(Master)的 DDL 和 DML 操作日志记录到二进制日志文件(Binary Log)中。从库(Slave)通过 I/O 线程请求主库的 Binlog,并将其写入到本地的中继日志(Relay Log)中。SQL 线程随后读取 Relay Log 并重放这些操作,从而实现数据同步。
1.2 架构作用
- 高可用性:主库故障时,可快速切换至从库。
- 负载均衡:实现读写分离,减轻主库压力。
- 数据备份:作为实时备份,保障数据安全。
2. 一主一从配置 (Master-Slave)
服务器规划
| 服务器IP | 角色 |
|---|---|
| 192.168.133.129 | Master (主) |
| 192.168.133.130 | Slave (从) |
2.1 主数据库 (Master) 安装与配置
假设使用 MySQL 8.0.20,安装过程略(解压、授权、初始化)。重点在于 my.cnf 配置。
修改 /etc/my.cnf:
1 | [mysqld] |
创建同步用户:
登录 Master 数据库执行:
1 | -- 创建用户 |
获取 Master 状态:
1 | show master status; |
记录下结果中的 File (文件名) 和 Position (位置),例如 mysql-bin.000001 和 156。
2.2 从数据库 (Slave) 安装与配置
修改 /etc/my.cnf:
1 | [mysqld] |
配置同步参数:
登录 Slave 数据库执行:
1 | -- 设置 Master 信息 |
验证状态:
1 | show slave status\G |
检查 Slave_IO_Running 和 Slave_SQL_Running 是否均为 Yes。
3. 双主双从配置 (Dual Master)
双主架构意味着两台服务器互为主从(Master1 是 Master2 的主,Master2 也是 Master1 的主),并且各自带一个从库。
服务器规划
| 服务器IP | 角色 | 说明 |
|---|---|---|
| 192.168.133.129 | Master1 | 与 Master2 互为主备 |
| 192.168.133.131 | Master2 | 与 Master1 互为主备 |
| 192.168.133.130 | Slave1 | Master1 的从库 |
| 192.168.133.132 | Slave2 | Master2 的从库 |
3.1 配置文件差异
关键在于自增 ID的配置,防止双主写入冲突。
Master1 配置 (my.cnf)
1 | server-id=1 |
Master2 配置 (my.cnf)
1 | server-id=3 |
3.2 互为主从设置
- 在 Master1 上创建同步用户,并执行
change master to ...指向 Master2。 - 在 Master2 上创建同步用户,并执行
change master to ...指向 Master1。 - 两边都执行
start slave。
3.3 从库挂载
- Slave1 配置
change master to指向 Master1。 - Slave2 配置
change master to指向 Master2。
这样就构成了完整的双主双从高可用架构。
本文作者: NUK
最后更新: 2026年01月08日 17:59:45
本文链接: http://www.uilucky.com/post/cb94082.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可,转载请注明出处!