MSYQL主从复制-Gtid方式
我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。
个人博客:传送阵
笔者微信:zhanghe15069028807
1、MYSQL主从复制-Gtid方式
Gtid方式的主从复制方式与传统方式的原理一致,配置大部分相同,仅有一小部分的配置不同。
Gtid主从复制如下,如想实现多从,将下述的从再配置一次即可。
1、环境准备
数据库主从复制如下,如需实现多从,将以下实验从案例再配置一次即可。
| 操作系统 | MYSQL版本 | IP | 角色 |
|---|---|---|---|
| centos7 | 5.7 | 192.168.70.160 | Master |
| centos7 | 5.7 | 192.168.70.161 | Slave |
/etc/hosts文件解析(两台机器一样)
192.168.70.160 master1
192.168.80.161 slave1
2、Master配置
//打开二进制日志
[root@master1 ~]# cat /etc/my.cnf
[mysqld]
datadir=/mysql
socket=/var/lib/mysql/mysql.sock
log-bin #打开二进制日志
server-id=160 #给一个server-id
gtid_mode = ON #打开Gtid
enforce_gtid_consistency = 1 #还有这一行
//重启数据库
[root@master1 ~]# systemctl restart mysqld
//准备数据
[root@master1 ~]# mysql -pcba-123
mysql> create database linuxdb;
mysql> use linuxdb;
mysql> create table t1(id int,name varchar(20));
mysql> insert into t1 values (1,'tt');
mysql> insert into t1 values (2,'ttt');
mysql> select * from t1;
+------+------+
| id | name |
+------+------+
| 1 | tt |
| 2 | ttt |
+------+------+
//确认二进制日志有没有开启
[root@master1 ~]# mysql -pcba-123 -e "show variables like 'log_bin%';"
+---------------------------------+--------------------------+
| Variable_name | Value |
+---------------------------------+--------------------------+
| log_bin | ON |
| log_bin_basename | /mysql/master1-bin |
| log_bin_index | /mysql/master1-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
+---------------------------------+--------------------------+
//授权,允许能够远程连接的主机
mysql> grant replication slave,replication client on *.* to 'rep'@'192.168.70.%' identified by 'Rep123.com';
//导出当前数据,主从复制也要基于全备,这次备份是准备复制给slave主机的
[root@master1 ~]# mysqldump -uroot -pcba-123 --all-databases --single-transaction --master-data=1 --flush-logs >/root/db-$(date +%F)-all.sql;
//传输给slave主机
[root@master1 ~]# scp /root/db-2019-11-30-all.sql root@slave1:/root
replication是响应的意思
3、Slave配置
//检测是否能登录master的数据库
[root@slave1 ~]# mysql -hmaster1 -urep -p'Rep123.com'
//给一个server-id,不用配置bin-log
[root@slave1 ~]# cat /etc/my.cnf
[mysqld]
datadir=/mysql
socket=/var/lib/mysql/mysql.sock
server-id=161
gtid_mode = ON #打开Gtid
enforce_gtid_consistency = 1 #还有这一行
//重启mysql服务
[root@slave1 ~]# systemctl restart mysqld
//导入数据
[root@slave1 ~]# mysql -uroot -p'cba-123' -e "source /root/db-2019-11-30-all.sql;"
//连接master
mysql> change master to master_host='master1',
master_user='rep',
master_password='Rep123.com',
master_auto_position=1;
//启动slave角色
mysql> start slave;
//查看角色是否同步
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: master1
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master1-bin.000001
Read_Master_Log_Pos: 154
Relay_Log_File: slave1-relay-bin.000003
Relay_Log_Pos: 371
Relay_Master_Log_File: master1-bin.000001
Slave_IO_Running: Yes #这两个线程一定要是YES才可以
Slave_SQL_Running: Yes
4、报错&解决
报错一:UUID冲突
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
解决办法:
将从上面的/mysql/auto.cnf更改名字,然后一下数据库
mv /mysql/auto.cnf /mysql/auto.cnf.bak
MSYQL主从复制-Gtid方式的更多相关文章
- MYSQL主从复制--传统方式
目录 0.MYSQL主从复制概述 1.主从复制的作用 2.主从复制存在的问题 3.主从复制问题的解决办法 4.主从复制的原理(面试必问) 1.MYSQL主从复制-传统方式 1.环境准备 2.Maste ...
- Linux下MySQL主从复制(GTID)+读写分离(ProxySQL)-实施笔记
GTID概念: GTID( Global Transaction Identifier)全局事务标识.GTID 是 5.6 版本引入的一个有关于主从复制的重大改进,相对于之前版本基于 Binlog 文 ...
- MySQL5.7主从同步--点位方式及GTID方式
MySQL5.6加入了GTID的新特性,其全称是Global Transaction Identifier,可简化MySQL的主从切换以及Failover.GTID用于在binlog中唯一标识一个事务 ...
- MYSQL 5.7 主从复制 -----GTID说明与限制 原创
http://www.cnblogs.com/cenalulu/p/4309009.html http://txcdb.org/2016/03/%E7%B3%BB%E7%BB%9F%E8%A1%A8- ...
- mysql 5.7.21 主从集群恢复GTID方式(不锁库)
从库损坏后,进行恢复 1.查看主加标记点 show master status\G 记录下POST的值 2.备注主库数据 mysqldump -u root -p -S /data/mysql/mys ...
- MySQL5.6 GTID方式,配置主从
迁移数据到从库 数据导出: mysqldump -uroot -p111111 -h127. -P3306 -q --single-transaction -R -E --triggers --def ...
- Mycat读写分离 + 主从复制(Gtid)
大概架构如下: IP 主机名 OS192.168.1.177 mycat CentOS7.4.1708192.168.1.184 master CentOS7.4.1708192.168. ...
- A:mysql数据库章节导航
mysql数据库章节导航 mysql5.7的安装(yum和二进制安装) 数据库的基本操作 索引 权限管理 日志管理 逻辑备份mysqldump 物理备份:xtrabackup 主从复制-传统方式 主从 ...
- 基于GTID模式MySQL主从复制
基于GTID模式MySQL主从复制 GTID复制原理:基于GTID的复制是MySQL 5.6后新增的复制方式GTID (global transaction identifier) 即全局事务ID, ...
随机推荐
- NET Framework项目移植到NET Core上遇到的一系列坑
原文:NET Framework项目移植到NET Core上遇到的一系列坑 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https: ...
- 在 ASP.NET Core 中启用跨域请求(CORS)
本文介绍如何在 ASP.NET Core 的应用程序中启用 CORS. 浏览器安全可以防止网页向其他域发送请求,而不是为网页提供服务. 此限制称为相同源策略. 同一源策略可防止恶意站点读取另一个站点中 ...
- Analyze Data 分析数据
In this lesson, you will learn how to add the Analysis functionality to your application. For this p ...
- 将Android封装库通过gradle部署到maven私服并依赖使用
一.在需要发布的模块chrisbaselibrary下的build.gradle中添加以下部分 //maven插件 apply plugin: 'maven' //打包main目录下代码和资源的 ta ...
- 解决:target overrides the `GCC_PREPROCESSOR_DEFINITIONS`
[!] Please close any current Xcode sessions and use `******.xcworkspace` for this project from now o ...
- 《数据挖掘导论》实验课——实验七、数据挖掘之K-means聚类算法
实验七.数据挖掘之K-means聚类算法 一.实验目的 1. 理解K-means聚类算法的基本原理 2. 学会用python实现K-means算法 二.实验工具 1. Anaconda 2. skle ...
- 生成对抗性网络GAN
同VAE模型类似,GAN模型也包含了一对子模型.GAN的名字中包含一个对抗的概念,为了体现对抗这个概念,除了生成模型,其中还有另外一个模型帮助生成模型更好地学习观测数据的条件分布.这个模型可以称作判别 ...
- Redux Class(immutable Record)引入的必要性 && Navigation引入方式
我的意见 和大家讨论一下几个问题 1. 项目里面没有用class规定的请求数据结构,调试数据的时候无法从前端获取请求的数据格式,要看后端接口,增加了调试的难度.我们以前会用immutable Reco ...
- Redis在Window下的安装部署
一.下载 由于redis官方不支持windows,所以需要在github上下载window的版本:下载地址.redis约定版次版本号(即第一个小数点后的数字)为偶数的版本是稳定版本(如2.8,3.0) ...
- ZooKeeper(六):watch机制的原理与实现
因为ZK有watch机制,可以随时发现一些数据的变化,从而达到数据的及时性. ZK的所有读操作都可以设置watch监视点: getData, getChildren, exists. 写操作则是不能设 ...