Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL一主多从复制(基于GTID)

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

作者头像
嘉美伯爵
发布于 2021-01-18 03:11:57
发布于 2021-01-18 03:11:57
84300
代码可运行
举报
运行总次数:0
代码可运行

环境准备

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

MySQL配置

  • 查看是否开启了GTID模式

若未开启在my.cnf文件最后添加,开启GTID(主)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 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

若未开启在my.cnf文件最后添加,开启GTID(从)

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 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

重启数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl restart mysqld

再次确认一下是否开启成功

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

备份数据库

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 备份
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

配置账号

主库创建账号

创建用于复制的账号

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)

从库进行连接

进行数据库连接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> change master to master_host = '192.168.43.54',
    -> master_user = 'repl',
    -> master_password = '123456Gao!',
    -> master_auto_position = 1
    -> ;
Query OK, 0 rows affected, 2 warnings (0.07 sec)

配置前

配置后

开启从库复制链路

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
start slave;

查看状态

show slave status\G

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

测试

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 主库创建
create table test_gtid;
# 从库查看
show databases;

可能遇到的问题

测试链路

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql -urepl -p123456Gao! -h192.168.43.54

Mysql主从同步时Slave_IO_Running:Connecting ; Slave_SQL_Running:Yes的情况故障排除

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL一主多从复制(基于GTID)
mysqldump --single-transaction --master-data=2 --triggers --routines --all-databases -uroot -p > all.sql
嘉美伯爵
2021/01/05
8280
配置MySQL GTID 主从复制
GTID是一个基于原始mysql服务器生成的一个已经被成功执行的全局事务ID,它由服务器ID以及事务ID组合而成。这个全局事务ID不仅仅在原始服务器器上唯一,在所有存在主从关系 的mysql服务器上也是唯一的。正是因为这样一个特性使得mysql的主从复制变得更加简单,以及数据库一致性更可靠。本文主要描述了快速配置一个基于GTID的主从复制架构,供大家参考。 一、GTID的概念 1、全局事务标识:global transaction identifiers。 2、GTID是一个事务一一对应,并且全局唯一
Leshami
2018/08/13
4.7K0
关于 MySQL GTID 复制
MySQL5.7以后都基本用GTID方式复制了,相对于binlog和position号方式,在failover时候减少很多人工切换操作
星哥玩云
2022/08/18
4500
【Mysql】mysql 基于GTID复制
3、一个GTID在一个服务器上只执行一次,避免重复执行导致数据混乱或者主从不一致。
用户5522200
2019/06/02
1.8K0
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
4430
mysql-MGR集群搭建
MySQL传统点位复制在线转为GTID模式复制
MySQL传统点位复制在5.7版本前是主要的主从复制模式,而随着MySQL5.6版本引入GTID,并且MySQL5.7进行各方面的优化以后,在mySQL5.7(尤其是MySQL5.7.6)版本后GTID模式的主从复制方式成为一个新的选择方式。要使用GTID模式,首先也需知其优缺点,其主要的优缺点如下:
俊才
2019/11/18
2K0
MySQL传统点位复制在线转为GTID模式复制
mysqldump 快速搭建特定库主从架构(GTID)
相关知识点参考 基于mysqldump搭建gtid主从 MySQL GTID 错误处理汇总 配置MySQL GTID 主从复制 使用mysqldump导出数据库
Leshami
2018/08/08
1.5K0
MySQL组复制(MGR)全解析 Part 4 MGR单主模式部署前准备
在MySQL 8.0.16之前如果禁用MyISAM时使用mysql_upgrade命令会报错,如果需要可以首先启用MyISAM后再运行
bsbforever
2020/08/18
7390
MySQL组复制(MGR)全解析  Part 4 MGR单主模式部署前准备
【愚公系列】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
3990
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.6K0
MySQL 8 复制(五)——配置GTID复制
MySQL主从复制---偏移量改为GTID
今天上午,做了一个比较有意思的操作,之前一直没有做过,就是把一套比较老的主从复制环境从基于偏移量的复制方式改为了基于GTID的复制方式,这里记录一下过程,如果大家有这方面的需求,可以参考一下:
AsiaYe
2019/11/06
3.6K0
MySQL集群搭建—GTID方式
上一篇发了MySQL主从复制集群搭建流程,不过好像小伙伴们对这个文章并不感兴趣,但是老哥出于对技术的热爱,和对小伙伴们的负责,我还是要写主从复制另一种实现方式:GTID。这些技术真的蛮重要的,希望你们能学习。
公众号 IT老哥
2020/09/16
1.8K0
MySQL集群搭建—GTID方式
MySQL之GTID主从复制
GTID即全局事务ID (global transaction identifier), 其保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的ID。
Alone-林
2023/03/17
1.4K0
MySQL之GTID主从复制
MySQL集群 双主架构(配置命令)
MySQL双主是一种高可用性和容错性的数据库架构,有两个主数据库(Master)。这种架构允许在其中一个主数据库出现故障时,系统仍然能够正常运行,并且在故障恢复后能够继续正常工作。
神秘泣男子
2024/06/03
8280
MySQL集群 双主架构(配置命令)
MYSQL+Keepalived实现双主复制
在主从复制的架构中,比较常见的从库是作为主库的备份,承担读取功能,分担主库的压力。
用户5921339
2025/05/20
1080
MYSQL+Keepalived实现双主复制
(8) MySQL主从复制架构使用方法
数据库服务器存在单点问题 数据库服务器资源无法满足增长的读写请求 高峰时数据库连接数经常超过上限
用户1214487
2019/05/25
8960
Mysql主从复制
Mysql主从复制也可以称为Mysql主从同步,它是构建数据库高可用集群架构的基础。它通过将一台主机的数据复制到其他一台或者多台主机上,并重新应用日志(realy log)中的SQL语句来实现复制功能。Mysql支持单向,双向,链式级联,异步复制,复制过程中一台服务器充当主库(master),而一个或者多个服务器充当从库(slave)
mikelLam
2022/10/31
1.4K0
实践 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 组复制
MySQL 基于GTID主从复制
一、基于GTID的主从复制# 1.什么是GTID Copy 1.全局事务标识符 2.组成:UUID + TID f03a53e0-cd46-11ea-a2c4-000c292c767e:1 2.GTID主从复制的优点 Copy 1.GTID同步时开启多个SQL线程,每一个库同步时开启一个线程,由原本的串行sql线程变成并行开启多个sql线程,加快读取中继日志速度。 2.binlog在rows模式下,binlog内容比寻常的主从更加简洁 3.GTID主从复制会记录主从信息,不需要手动配置bi
Linux运维技术之路
2022/06/07
3940
MySQL 5.7基于GTID及多线程主从复制
MySQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态),Slave MySQL上通过一个I/O线程从Master MySQL上读取binlog,然后传输到Slave MySQL的中继日志中,然后Slave MySQL的SQL线程从中继日志中读取中继日志,然后应用到Slave MySQL的数据库中。这样实现了主从数据同步功能。
小小科
2020/06/23
2.5K0
相关推荐
MySQL一主多从复制(基于GTID)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验