mysql如何配置GTID复制_mysql GTID复制配置方法

来源:这里教程网 时间:2026-02-28 20:28:46 作者:

MySQL的GTID(Global Transaction Identifier)复制是一种基于事务标识符的复制方式,能够简化主从复制的管理,避免重复执行事务,提升故障切换的可靠性。配置GTID复制需要在主库和从库上进行一系列设置,以下是完整的配置方法。

启用GTID复制的前提条件

确保主从服务器使用相同版本的MySQL(建议5.7及以上),且数据一致性已同步。GTID复制要求binlog格式为ROW,并开启log_slave_updates。

主从节点必须启用二进制日志(log-bin) 每个实例需设置唯一的server-id 建议关闭自动提交前的旧风格复制相关参数

主库配置步骤

修改主库的my.cnf配置文件,在[mysqld]段中添加以下内容:

server-id = 1
log-bin = mysql-bin
binlog-format = ROW
gtid-mode = ON
enforce-gtid-consistency = ON

重启MySQL服务使配置生效。登录MySQL,创建用于复制的账号:

CREATE USER 'repl'@'%' IDENTIFIED BY 'password';

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

FLUSH PRIVILEGES;

查看主库状态获取GTID信息:

SHOW MASTER STATUS;

从库配置步骤

修改从库的my.cnf文件,配置如下:

server-id = 2
log-bin = mysql-bin
binlog-format = ROW
relay-log = relay-log
gtid-mode = ON
enforce-gtid-consistency = ON
log-slave-updates = ON
read-only = ON

重启从库MySQL服务。进入MySQL客户端,执行CHANGE MASTER命令:

CHANGE MASTER TO

  MASTER_HOST='主库IP',

  MASTER_USER='repl',

  MASTER_PASSWORD='password',

  MASTER_PORT=3306,

  MASTER_AUTO_POSITION = 1;

注意:MASTER_AUTO_POSITION = 1 表示启用基于GTID的自动定位,无需手动指定binlog文件和位置。

启动并验证复制

启动复制线程:

START SLAVE;

查看复制状态:

SHOW SLAVE STATUS\G

重点关注以下字段:

Slave_IO_Running: Yes Slave_SQL_Running: Yes Retrieved_Gtid_Set:接收到的GTID集合 Executed_Gtid_Set:已执行的GTID集合

如果两个线程均为Yes,且无错误信息,说明GTID复制已正常运行。

基本上就这些。只要配置正确,GTID能自动处理事务一致性,主从切换时也更方便。注意备份关键数据,避免误操作影响服务。不复杂但容易忽略细节。

相关推荐