GTID是基于mysql事务实现的,如果对mysql事务没啥概念的话,建议先看看

不在单独说明如何搭建mysql单点 请参考

然后再看这个gtid的

现在有这样一个需求:

主1mysql 是个单点的mysql库,库里有很多数据,想给主1增加个从库,并且使用gtid

思路如下:

1.备份主1的数据或者拿主1最新的备份(主1已经开启gtid)

通过配置文件my.cnf 开启gtid

gtid-mode =ON

enforce-gtid-consistency =ON

log-slave-updates =ON

在线开启gtid 不用重启

mysql> set global gtid_mode='OFF_PERMISSIVE';

Query OK,0 rows affected (0.01sec)

mysql> set global gtid_mode='ON_PERMISSIVE';

Query OK,0 rows affected (0.01sec)

mysql> set global enforce_gtid_consistency=ON;

Query OK,0 rows affected (0.00sec)

mysql> set global gtid_mode='ON';

Query OK,0 rows affected (0.00sec)

查看主库与从库的GTID是否开启

mysql> show variables like "%gtid%";+----------------------------------+-----------+

| Variable_name | Value |

+----------------------------------+-----------+

| binlog_gtid_simple_recovery | ON |

| enforce_gtid_consistency | ON |

| gtid_executed_compression_period | 1000 |

| gtid_mode | ON |

| gtid_next | AUTOMATIC |

| gtid_owned | |

| gtid_purged | |

| session_track_gtids | OFF |

+----------------------------------+-----------+

8 rows in set (0.00sec)

mysql> show variables like '%gtid_next%';+---------------+-----------+

| Variable_name | Value |

+---------------+-----------+

| gtid_next | AUTOMATIC |

+---------------+-----------+

1 row in set (0.00sec)

备份常用指令/usr/local/mysql/bin/mysqldump --all-databases --single-transaction --master-data=2 --set-gtid-purged=off -F --triggers --routines --events --user=root -p --socket=/data/mysql3306/logs/mysql.sock > all111_0423.sql

所需命令

2.导入从库(从库开启gtid)

3.主1创建授权同步用户

在MySQL主服务器上创建

mysql> grant replication slave on *.* to 'repl'@'192.168.2.%' identified by '000000';

mysql> flush privileges;

所需命令

4.从库指定主库

CHANGE MASTER TO MASTER_HOST='xxxxx',MASTER_USER='xxxx',MASTER_PASSWORD='xxxx',MASTER_AUTO_POSITION=1;

start slave;

show slave status \G 查看是否两个yes

如果有报错 就去查看errorlog

这里我做的时候出现一个错误

我把root删除了,创建了新的特权用户 结果就报错如下

018-04-24T14:55:06.459876+08:00 25 [ERROR] Slave SQL for channel '': Error 'Operation ALTER USER failed for 'root'@'localhost'' on query. Default database: ''. Query: 'ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '*FAAFFE644E901CFAFAEC7562415E5FAEC243B8B2'', Error_code: 1396

然后我把root加回来后 就可以了

好处就是 不用再关心日志的位置,gtid会自己去寻找位置进行同步,多省心。

还有个需求

从库需要切换主库

1.首先查看主库的binlog日志 是否全完整,是否连续

因为从库从主库同步的时候,得利用binlog日志,日志都没了,从库咋同步

如果确定日志全呢  直接进行上边的 步骤3和4即可

否则 按照上边的流程 重新来一遍

mysql 5.7 gtid 主从_MySQL 5.7基于GTID的主从复制实践相关推荐

  1. mysql gtid 集群_Docker搭建MySQL主从集群,基于GTID

    写在前边 搭建MySQL读写分离主从集群,这里未使用binlog方式,使用的是GTID方式 源码见我的Github https://github.com/hellxz/mysql-cluster-do ...

  2. mysql 5.7.21 主从_Mysql 5.7.21 设置主从库同步

    主从复制条件: Mysql 单机多实例安装参考Mysql 5.7.21 设置主从库同步 下面的操作是多实例主从复制,3306为主库,3307为从库. 主库要开启log-bin,主库和从库的server ...

  3. mysql 集群与主从_Mysql集群和主从

    1.Mysql cluster: share-nothing,分布式节点架构的存储方案,以便于提供容错性和高性能. 需要用到mysql cluster安装包,在集群中的每一个机器上安装. 有三个关键概 ...

  4. mysql二进制日志文件差不多_mysql数据同步-基于二进制日志文件和position复制点的方式...

    mysql的binlog日志有三种格式,分别为statement,mixed,以及row. 1.Statement:每一条会修改数据的sql都会记录在binlog中 优缺点:1)不用记录每一行的变化, ...

  5. mysql 两张大表关联_MySQL的DropTable影响分析和最佳实践

    [0.前言] MySQL上直接Drop张大表,会有什么影响,能否直接写个 drop table ; 或者 truncate table ; 甚至是delete * from? 如果这张表足够大,比如1 ...

  6. mysql gtid基础_MySQL 基础知识梳理学习(四)----GTID

    在日常运维中,GTID带来的最方便的作用就是搭建和维护主从复制.GTID的主从模式代替了MySQL早期版本中利用二进制日志文件的名称和日志位置的做法,使用GTID使操作和维护都变得更加简洁和可高. 1 ...

  7. MySQL 5.7 基于 GTID 的主从复制实践

    MySQL 5.7 基于 GTID 的主从复制实践 Posted by Mike on 2017-07-03 运维之美 Home About Archives Tags 在 「MySQL 5.7多源复 ...

  8. mysql 8.0配置主从同步_MySQL8.0.19开启GTID主从同步CentOS8

    前言本次搭建目标为1主2从MySQL主从同步结构.采用CentOS8作为操作系统,IP为[10.0.0.211,10.0.0.212,10.0.0.213].MySQL版本为8.0.19,端口均采用3 ...

  9. mysql之 mysql 5.6不停机主从搭建(一主一从基于GTID复制)

    环境说明: 版本 version 5.6.25-log 主库ip: 10.219.24.25 从库ip:10.219.24.22 os 版本: centos 6.7 已安装热备软件:xtrabacku ...

最新文章

  1. 分享13个帮助你简化开发的jQuery插件
  2. 【Java 虚拟机原理】Dalvik 虚拟机 ( 打包 Jar 文件和 Dex 文件 | 反编译 Dex 文件 | 分析 Dex 文件反编译结果 )
  3. Tensorflow实战之下载MNIST数据,自动分成train, validation和test三个数据集
  4. eclipse 导入myeclipse web项目
  5. 【JavaScript】Window对象学习
  6. Javascript组成--ECMAScript,DOM,BOM
  7. MongoDB使用小结:一些不常见的经验分享
  8. 计算机音乐lover88,Lover Boy 88-Higher Brothers/Phum Viphurit
  9. SQLServer IP不能登录问题解决
  10. 解决用wps另存dbf格式文件,丢失只转换了部分数据
  11. 关于H264相关的EBSP,RBSP,SODP的说明
  12. 基于SPSS的交叉表分析
  13. 版本控制系统(vcs)Git
  14. 关于hhkb pro2键盘在mac上串键问题
  15. 被遗忘权_HTML:前5个被遗忘的元素
  16. CondConv: Conditionally Parameterized Convolutions for Efficient Inference论文解读
  17. SAP ABAP 系列丛书推荐:PP 报工
  18. webchart 生成饼状图 java_WebChart生成折线图,柱状图,饼状图
  19. OLED屏幕的IIC驱动程序
  20. No matching provisioning profile found: Your build settings specify a provisioning profile with the

热门文章

  1. R语言使用fs包的file_copy函数、dir_copy函数、link_copy函数将文件、目录、超链接从一个位置拷贝(copy)到另一个位置
  2. R语言使用cowplot包的plot_grid函数将两个ggplot2可视化结果并排组合起来并添加图像标签A、B、设置组合图像使用共享的图例(shared legend in cowplot)
  3. R语言Logistic分布函数Logistic Distribution(dlogis, plogis, qlogis rlogis )实战
  4. R语言时间序列(time series)分析实战:HoltWinters平滑法预测
  5. php统计键出现的次数,php统计数组元素出现的次数
  6. 人类基因测序被重新定义,时间减半创世界纪录
  7. Linux下Boost编译安装
  8. ubuntu 14.04 16.04 18.04使用阿里源
  9. 三层神经网络前向后向传播示意图
  10. 【openfst样例2】Downcasing Text