mysql中如何启用GTID复制_mysql GTID复制配置

P粉602998670
发布: 2025-12-12 12:27:52
原创
499人浏览过
首先确保MySQL版本支持GTID,推荐使用5.7及以上版本;接着在主库配置文件中启用enforce_gtid_consistency、gtid_mode等参数并重启服务;然后在从库进行类似配置,设置唯一server_id和中继日志;之后在主库创建具有复制权限的用户;最后通过mysqldump导出主库数据并导入从库,完成数据同步。

mysql中如何启用gtid复制_mysql gtid复制配置

在MySQL中启用GTID(Global Transaction Identifier)复制可以简化主从复制的管理,避免因binlog位置不一致导致的问题。GTID为每个事务分配唯一标识,使故障切换和节点重建更可靠。以下是配置MySQL GTID复制的详细步骤。

1. 确保MySQL版本支持GTID

GTID功能从MySQL 5.6开始引入,在MySQL 5.7和8.0中更加稳定。建议使用MySQL 5.7及以上版本进行配置。

2. 配置主库(Master)

编辑主库的my.cnfmy.ini配置文件,在[mysqld]部分添加以下参数:

  • enforce_gtid_consistency = ON:确保所有事务符合GTID要求
  • gtid_mode = ON:启用GTID模式
  • log_bin = mysql-bin:开启二进制日志
  • log_slave_updates = ON:从库也将自己的更新写入binlog(在级联复制中需要)
  • binlog_format = ROW:推荐使用ROW格式以保证事务安全
  • server_id = 1:设置唯一的服务器ID(主从不能重复)

示例配置:

[mysqld]
server_id = 1
log_bin = mysql-bin
log_slave_updates = ON
binlog_format = ROW
enforce_gtid_consistency = ON
gtid_mode = ON

重启MySQL服务使配置生效。

3. 配置从库(Slave)

同样修改从库的配置文件,设置如下参数:

  • server_id = 2:必须与主库不同
  • relay_log = relay-bin:启用中继日志
  • log_slave_updates = ON(可选)
  • enforce_gtid_consistency = ON
  • gtid_mode = ON
  • binlog_format = ROW

重启从库MySQL服务。

4. 创建复制账号

在主库上创建用于复制的用户:

CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;

5. 导出主库数据并导入从库

如果从库没有数据,需从主库导出当前状态:

mysqldump --all-databases --master-data=2 --single-transaction --routines --triggers --host=localhost > backup.sql

将备份文件传到从库并导入:

NNiji·Journey
NNiji·Journey

二次元风格绘画生成器,由 Spellbrush 与 Midjourney 共同设计开发

NNiji·Journey 61
查看详情 NNiji·Journey
mysql -u root -p

注意:--master-data=2会在dump文件中生成CHANGE MASTER语句,包含binlog位置信息,但在GTID复制中我们不依赖它。

6. 启动GTID复制

登录从库MySQL,执行CHANGE MASTER命令:

CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl',
MASTER_PASSWORD='your_password',
MASTER_PORT=3306,
MASTER_AUTO_POSITION = 1;

START SLAVE;

MASTER_AUTO_POSITION = 1是关键,表示使用GTID自动定位同步位置。

7. 检查复制状态

运行以下命令查看从库状态:

SHOW SLAVE STATUS\G

关注以下字段:

  • Slave_IO_Running: Yes
  • Slave_SQL_Running: Yes
  • Retrieved_Gtid_Set:已接收的GTID集合
  • Executed_Gtid_Set:已执行的GTID集合
  • Auto_Position: 1:确认启用了自动定位

若出现错误,检查错误信息并根据提示调整配置。

8. 验证GTID复制

在主库执行一个写操作:

CREATE DATABASE test_gtid;
USE test_gtid;
CREATE TABLE t1 (id INT);
INSERT INTO t1 VALUES (1);

登录从库,检查是否同步:

SHOW DATABASES; -- 应看到 test_gtid
SELECT * FROM test_gtid.t1; -- 应看到插入的数据

基本上就这些。只要主从配置正确、网络通畅、账号权限无误,GTID复制就能正常运行。相比传统基于binlog文件+position的复制方式,GTID更易维护,尤其适合高可用架构中的主从切换场景。

以上就是mysql中如何启用GTID复制_mysql GTID复制配置的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号