基于GTID的主从复制

type
status
date
slug
summary
tags
category
icon
password

1️⃣ 环境准备

  • 假设主库 IP:192.168.140.10
  • 从库 IP:192.168.140.11
  • 复制账号:repluser
  • 密码:WWW.1.com

2️⃣ 主库配置

2.1 编辑 MySQL 配置

在主库 /etc/my.cnf 添加:
  • gtid_mode=ON:启用 GTID 功能
  • enforce_gtid_consistency=TRUE:强制 GTID 事务一致性
  • server-id:每台服务器唯一
  • log_binbinlog_format:开启二进制日志,使用 ROW 模式
重启 MySQL 服务:

2.2 创建复制账号

如果允许所有从库 IP 连接,可以改成 % 通配符:

2.3 查看主库状态

记下:
  • File:master.000002
  • Position:1177
  • GTID 集合:用于 GTID 自动定位(可选)

3️⃣ 从库配置

3.1 清理现有数据

⚠️ 注意:此操作会删除从库现有数据,谨慎执行

3.2 配置 GTID

在从库 /etc/my.cnf 添加:
重启 MySQL:

4️⃣ 从库连接主库

4.1 配置主库信息

  • MASTER_AUTO_POSITION=1:启用 GTID 自动定位,无需手动指定 binlog 文件和位置

4.2 启动复制

4.3 检查复制状态

关键字段说明:
  • Slave_IO_Running: Yes → 从库 I/O 线程正常
  • Slave_SQL_Running: Yes → 从库 SQL 线程正常
  • Seconds_Behind_Master: 0 → 与主库同步完成
  • Retrieved_Gtid_Set & Executed_Gtid_Set → 当前 GTID 集合
  • Auto_Position: 1 → 使用 GTID 自动定位

5️⃣ 完成

此时,基于 GTID 的主从复制已建立成功,从库可以自动追赶主库的新事务。

💡 小提示
  1. GTID 模式下,切换主从更方便,只需设置 MASTER_AUTO_POSITION=1
  1. 如果出现复制报错,可以用:
临时跳过问题事务。
3. 主从账号最好单独创建,避免使用业务账号。

Loading...