首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL一主多从复制(基于GTID)

MySQL一主多从复制(基于GTID)

原创
作者头像
嘉美伯爵
修改于 2021-01-05 06:32:42
修改于 2021-01-05 06:32:42
8450
举报

环境准备

  • 确保MySQL版本大于5.7
  • 确保防火漆关闭或开启各服务器的3306端口

MySQL配置

  • 查看是否开启了GTID模式
image-20201110163302003
image-20201110163302003
  • 若未开启在my.cnf文件最后添加,开启GTID(主)
代码语言:txt
复制

must params

server_id = 100

enforce_gtid_consistency = on

gtid_mode = on

binlog

log_bin = mysqlbin

log_slave_updates = 1

binlog_format = row

relay log

skip_slave_start = 1

代码语言:txt
复制
  • 若未开启在my.cnf文件最后添加,开启GTID(从)

需要注意的是,若配置多台MySQL从服务器,确保server_id唯一

代码语言:txt
复制

must params

server_id = 101

enforce_gtid_consistency = on

gtid_mode = on

binlog

log_bin = mysqlbin

binlog_format = row

master_info_repository = TABLE

relay log

relay_log_info_repository = TABLE

代码语言:txt
复制
代码语言:txt
复制

systemctl restart mysqld

代码语言:txt
复制
  • 再次确认一下是否开启成功

gtid_mode 被设置为on,即为开启成功

image-20201110165848669
image-20201110165848669
  • 备份数据库

若使用的是三个数据库,数据不一样,需要进行数据的备份,导入

代码语言:txt
复制

备份

mysqldump --single-transaction --master-data=2 --triggers --routines --all-databases -uroot -p > all.sql

导出

mysqldump -u username -p dbname > dbname.sql

导入

mysqldump -u username -p dbname < dbname.sql

代码语言:txt
复制

配置账号

  • 主库创建账号

创建用于复制的账号

代码语言:txt
复制

mysql> create user repl@'192.168.43.%' identified by '123456Gao!';

Query OK, 0 rows affected (0.01 sec)

mysql> grant replication slave on . to repl@'192.168.43.%';

Query OK, 0 rows affected (0.06 sec)

代码语言:txt
复制
  • 从库进行连接

进行数据库连接

代码语言:txt
复制

mysql> change master to master_host = '192.168.43.54',

代码语言:txt
AI代码解释
复制
  -> master_user = 'repl',
代码语言:txt
AI代码解释
复制
  -> master_password = '123456Gao!',
代码语言:txt
AI代码解释
复制
  -> master_auto_position = 1
代码语言:txt
AI代码解释
复制
  -> ;

Query OK, 0 rows affected, 2 warnings (0.07 sec)

代码语言:txt
复制
  • 配置前
image-20201110172707416
image-20201110172707416
  • 配置后
image-20201110172725502
image-20201110172725502
  • 开启从库复制链路
代码语言:txt
复制

start slave;

代码语言:txt
复制

查看状态

  • show slave status\G

确保下图红框的两个内容状态为yes,

  • 测试

在主库创建数据库,然后从库参看是否正确同步的该数据库

代码语言:txt
复制

主库创建

create table test_gtid;

从库查看

show databases;

代码语言:txt
复制

可能遇到的问题

  • 测试链路
代码语言:txt
复制

mysql -urepl -p123456Gao! -h192.168.43.54

代码语言:txt
复制

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL一主多从复制(基于GTID)
Mysql主从同步时Slave_IO_Running:Connecting ; Slave_SQL_Running:Yes的情况故障排除
嘉美伯爵
2021/01/18
8630
关于 MySQL GTID 复制
MySQL5.7以后都基本用GTID方式复制了,相对于binlog和position号方式,在failover时候减少很多人工切换操作
星哥玩云
2022/08/18
4760
配置MySQL GTID 主从复制
GTID是一个基于原始mysql服务器生成的一个已经被成功执行的全局事务ID,它由服务器ID以及事务ID组合而成。这个全局事务ID不仅仅在原始服务器器上唯一,在所有存在主从关系 的mysql服务器上也是唯一的。正是因为这样一个特性使得mysql的主从复制变得更加简单,以及数据库一致性更可靠。本文主要描述了快速配置一个基于GTID的主从复制架构,供大家参考。 一、GTID的概念 1、全局事务标识:global transaction identifiers。 2、GTID是一个事务一一对应,并且全局唯一
Leshami
2018/08/13
4.7K0
mysqldump 快速搭建特定库主从架构(GTID)
相关知识点参考 基于mysqldump搭建gtid主从 MySQL GTID 错误处理汇总 配置MySQL GTID 主从复制 使用mysqldump导出数据库
Leshami
2018/08/08
1.6K0
mysql-MGR集群搭建
MGR是MySQL数据库未来发展的一个重要方向。 MGR基础结构要求: 引擎必须为innodb,因为需事务支持在commit时对各节点进行冲突检查 每个表必须有主键,在进行事务冲突检测时需要利用主键值对比 必须开启binlog且为row格式 开启GTID,且主从状态信息存于表中(--master-info-repository=TABLE 、--relay-log-info-repository=TABLE),--log-slave-updates打开 一致性检测设置--transaction-write-set-extraction=XXHASH64 MGR使用限制: RP和普通复制binlog校验不能共存,需设置--binlog-checksum=none 不支持gap lock(间隙锁),隔离级别需设置为read_committed 不支持对表进行锁操作(lock /unlock table),不会发送到其他节点执行 ,影响需要对表进行加锁操作的情况,列入mysqldump全表备份恢复操作 不支持serializable(序列化)隔离级别 DDL语句不支持原子性,不能检测冲突,执行后需自行校验是否一致 不支持外键:多主不支持,单主模式不存在此问题 最多支持9个节点:超过9台server无法加入组
章工运维
2023/08/24
4660
mysql-MGR集群搭建
MySQL集群 双主架构(配置命令)
MySQL双主是一种高可用性和容错性的数据库架构,有两个主数据库(Master)。这种架构允许在其中一个主数据库出现故障时,系统仍然能够正常运行,并且在故障恢复后能够继续正常工作。
神秘泣男子
2024/06/03
9580
MySQL集群 双主架构(配置命令)
【Mysql】mysql 基于GTID复制
3、一个GTID在一个服务器上只执行一次,避免重复执行导致数据混乱或者主从不一致。
用户5522200
2019/06/02
1.9K0
MySQL 8 复制(五)——配置GTID复制
上篇解释了许多GTID的原理,以及在MySQL复制中所起的作用,并且进行了很多实验加以辅助说明。本篇演示如何从头开始一步步配置GTID复制。实验环境同https://wxy0327.blog.csdn.net/article/details/90081518#%E4%BA%8C%E3%80%81%E5%A4%8D%E5%88%B6%E5%AE%9E%E9%AA%8C%E7%8E%AF%E5%A2%83。这里只讨论在联机情况下进行配置,因为相对于空库或脱机等理想情况,联机配置复制的需求更为典型和常见。
用户1148526
2019/07/02
4.7K0
MySQL 8 复制(五)——配置GTID复制
【愚公系列】2022年04月 Mysql数据库-GTID同步
GTID即全局事务ID (global transaction identifier), 其保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的ID。GTID最初由google实现,官方MySQL在5.6才加入该功能。mysql主从结构在一主一从情况下对于GTID来说就没有优势了,而对于2台主以上的结构优势异常明显,可以在数据不丢失的情况下切换新主。使用GTID需要注意: 在构建主从复制之前,在一台将成为主的实例上进行一些操作(如数据清理等),通过GTID复制,这些在主从成立之前的操作也会被复制到从服务器上,引起复制失败。也就是说通过GTID复制都是从最先开始的事务日志开始,即使这些操作在复制之前执行。比如在server1上执行一些drop、delete的清理操作,接着在server2上执行change的操作,会使得server2也进行server1的清理操作。
愚公搬代码
2022/04/10
4040
MySQL之GTID主从复制
GTID即全局事务ID (global transaction identifier), 其保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的ID。
Alone-林
2023/03/17
1.5K0
MySQL之GTID主从复制
MySQL组复制(MGR)全解析 Part 4 MGR单主模式部署前准备
在MySQL 8.0.16之前如果禁用MyISAM时使用mysql_upgrade命令会报错,如果需要可以首先启用MyISAM后再运行
bsbforever
2020/08/18
7510
MySQL组复制(MGR)全解析  Part 4 MGR单主模式部署前准备
MySQL传统点位复制在线转为GTID模式复制
MySQL传统点位复制在5.7版本前是主要的主从复制模式,而随着MySQL5.6版本引入GTID,并且MySQL5.7进行各方面的优化以后,在mySQL5.7(尤其是MySQL5.7.6)版本后GTID模式的主从复制方式成为一个新的选择方式。要使用GTID模式,首先也需知其优缺点,其主要的优缺点如下:
俊才
2019/11/18
2.1K0
MySQL传统点位复制在线转为GTID模式复制
MySQL集群搭建—GTID方式
上一篇发了MySQL主从复制集群搭建流程,不过好像小伙伴们对这个文章并不感兴趣,但是老哥出于对技术的热爱,和对小伙伴们的负责,我还是要写主从复制另一种实现方式:GTID。这些技术真的蛮重要的,希望你们能学习。
公众号 IT老哥
2020/09/16
1.8K0
MySQL集群搭建—GTID方式
Mysql8.4基于GTID主从部署以及故障修复
MySQL 8.4是一个稳定和高性能的关系型数据库管理系统,支持各种操作系统平台,包括Linux、Windows和macOS。部署MySQL 8.4通常包括安装、配置、优化和测试等步骤
DBA实战
2024/09/26
7000
Mysql8.4基于GTID主从部署以及故障修复
实践 Mysql Group Replication 组复制
简介 之前简单介绍了一下 Mysql 5.7.17 中 Group Replication 组复制的作用和特点,现在我们来实际把它配置起来,以便于更好的理解组复制的思路 实践过程: 在一台服务器上安装3个MySQL(s1,s2,s3) 配置s1,启动 Group Replication 配置s2,添加到组中 配置s3,添加到组中 测试 内容比较长,可能不方便实际操作,我也做了一个PDF版本,您可以下载查看,发送消息 'gr' 会自动回复下载地址 详细配置过程 (1)下载 mysql-5.7.17 https
dys
2018/04/04
1.5K0
实践 Mysql Group Replication 组复制
传统复制在线变更为GTID复制
1.在所有数据库上执行SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = WARN;
wangwei-dba
2021/06/17
3760
Mysql主从复制
Mysql主从复制也可以称为Mysql主从同步,它是构建数据库高可用集群架构的基础。它通过将一台主机的数据复制到其他一台或者多台主机上,并重新应用日志(realy log)中的SQL语句来实现复制功能。Mysql支持单向,双向,链式级联,异步复制,复制过程中一台服务器充当主库(master),而一个或者多个服务器充当从库(slave)
mikelLam
2022/10/31
1.4K0
MYSQL+Keepalived实现双主复制
在主从复制的架构中,比较常见的从库是作为主库的备份,承担读取功能,分担主库的压力。
用户5921339
2025/05/20
1380
MYSQL+Keepalived实现双主复制
MySQL 主从搭建
MySQL 主从(MySQL replication),主要用于 MySQL 的实时备份或者读写分离。主从复制可以将 MySQL 主数据库中的数据实时复制到一个或多个 MySQL 从数据库中。
Se7en258
2021/09/15
4.8K0
MySQL 主从搭建
MySQL 自动故障转移工具--mysqlfailover
mysqlfailover 是mysql utilities工具包中包含的一个重要的高可用命令,用于对主从复制架构进行健康检测以及实现故障自动转移。它会定期按指定的时间间隔探测各节点的健康状态,一旦在捕获到主节点不可用时,将触发故障转移相关动作,自动执行故障切换到当前最佳的从服务器上。同时整个主从架构内的其他从节点将指向新的主节点,自动完成主从拓扑结构更新。 相关知识点热身 基于mysqldump搭建gtid主从 MySQL GTID 错误处理汇总 配置MySQL GTID 主从复制
Leshami
2018/08/13
5K0
相关推荐
MySQL一主多从复制(基于GTID)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档