mysql8.0 主从架构模式【0到1架构系列】
前提条件
- 准备3,4,5台虚拟机
- 祼装mysql8.0


主从架构
常见两种模式“一主多从”和“级联复制”两种,基本都很简单,都是依赖binlog日志文件进行同步,binlog日志会记录DDL和部分DDL语句,进行同步时从库会重新执行这些语句从而实现主从同步。

步骤1:
配置主/从服务器的server_id,如果不清楚mysql服务器server_id,使用命令 SHOW VARIABLES LIKE 'server_id';可以查询,server_id的值没有严格规定,保证全局唯一性即可,server_id值默认是1。
debian服务器编辑命令如下:nano /etc/mysql/my.conf ,加入下面节点,假设主库设置1,从库设置2,保存之后重启数据库systemctl restart mysql
[mysqld]
server-id=1 #主库配置加入
[mysqld]
server-id=2 #从库配置加入
步骤2(非必要):
主机上执行 show master status;显示最新的日志文件和当前位置。

File当前正在写入的二进制日志文件名。
Position当前二进制日志文件的偏移量,表示下一个要写入的位置。
Binlog_Do_DB主服务器上配置的需要记录到二进制日志中的数据库。
Binlog_Ignore_DB主服务器上配置的不需要记录到二进制日志中的数据库。
Executed_Gtid_Set在 GTID 模式下,该属性表示已经执行过的全局事务标识符的集合
步骤3:
从服务器连接主服务器进行主从同步,在从服务器上面执行如下代码:
CHANGE REPLICATION SOURCE to
SOURCE_HOST='192.168.3.107',
SOURCE_USER='root',
SOURCE_PASSWORD='1234',
SOURCE_LOG_FILE='binlog.000009',
SOURCE_LOG_POS=0;
SOURCE_HOST:主库连接地址
SOURCE_USER:账号
SOURCE_PASSWORD:密码
SOURCE_LOG_FILE:主库当前二进制文件名
SOURCE_LOG_POS:当前二进制日志文件的偏移量
执行完成之后可以通过show REPLICA status;可以查看复制集群状态,通过如下命令可以启动,暂停,删除集群。
show REPLICA status; #查看
start REPLICA; #开始
stop REPLICA; #暂停
RESET REPLICA ALL; #删除
通过设置SOURCE_HOST地址连接主库或从库,就可以轻松实现一主多从,或一主一从一从的链式架构。
GTID 模式(推荐)
主从复制中mysql提供一种GTID 模式,SHOW GLOBAL VARIABLES LIKE 'gtid_mode';查看Gtid模式的状态。gtid是一种新的日志格式,gtid每个事务都有一个唯一的GTID,保证了事务在整个复制拓扑中的唯一性,主要与传统日志格式区别就是以事务为单位而传统日志是基于日志位置。
RESET MASTER;重置主库的binlog日志,注意一旦重置日志将丢失所有日志数据,将从00001开始,编辑nano /etc/mysql/my.cnf,各个数据库的server_id按1-5排序下去,主库和从库都需要配置。
[mysqld]
server-id=1
gtid_mode=on
enforce_gtid_consistency=true
gtid_mode:开启gtid模式。
enforce_gtid_consistency:强制GTID一致性,这有助于提高数据的可靠性和一致性,防止数据丢失或损坏。
从库执行如下代码:
CHANGE REPLICATION SOURCE to
SOURCE_HOST='192.168.3.107',
SOURCE_USER='root',
SOURCE_PASSWORD='123',
SOURCE_AUTO_POSITION=1;
你会发现SOURCE_LOG_FILE和SOURCE_LOG_POS将不再需要填写,因为gtid的好处之一就是会自动定位日志文件和位置,减少配置复杂性。其它的集群管理与传统的命令一致。
#主库常用命令
show master status #查看主库状态
reset master; #重置主库binlog日志
#从库常用命令
show replica status; #查看从库状态
start replica; #开始同步
stop replica; #暂停同步
reset replica all; #重置(删除)全部同步
select * from performance_schema.replication_applier_status_by_worker; #查看同步线程的信息(主要用于查看具体报错信息)
#其它
show variables like 'server_id'; #查看server_id
show global variables like 'gtid_mode'; #查看gtid状态
mysql8.0 主从架构模式【0到1架构系列】的更多相关文章
- 大型网站技术架构(四)--核心架构要素 开启mac上印象笔记的代码块 大型网站技术架构(三)--架构模式 JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)
大型网站技术架构(四)--核心架构要素 作者:13GitHub:https://github.com/ZHENFENG13版权声明:本文为原创文章,未经允许不得转载.此篇已收录至<大型网站技 ...
- iOS开发之--MVC 架构模式
随着项目开发时间的增加,从刚开始那种很随意的代码风格,逐渐会改变,现在就介绍下MVC的架构模式,MVC的架构模式,从字面意思上讲,即:MVC 即 Modal View Controller(模型 视图 ...
- 前端架构模式 All In One
前端架构模式 All In One 架构模式 同构 异构 微前端 Web Components 组件化 无框架 去框架 前后端分离 前端架构图 Clean Architecture https://b ...
- SpringMVC MVC 架构模式
MVC 架构模式 MVC(Model.View 和 Controller)是一种架构模式,它是按照职责划分的思想将系统操作分为三个模块进行处理,每个模块负责一个职责,而且模块之间可以相互交互通信,共同 ...
- JavaEE 三层架构模式
什么是架构模式 要理解三层架构模式,我们得先搞清楚什么是架构模式.(这里说的架构模式是针对后端开发) 所谓架构就是系统最高级别的设计,一个系统特别复杂时才需要架构设计,如果只是开发一个很小程序,就谈不 ...
- 通过 Docker 部署 Mysql 8.0 主从模式
文章转载自:http://www.mydlq.club/article/106/ 系统环境: Mysql 版本:8.0.23 Docker 版本:19.03.13 一.为什么需要 Mysql 主从复制 ...
- Mysql8.0主从配置
环境Centos7.6 ,mysql8.0 Mysql主从配置 1.1 配置环境: 本人在vm下做的实验,linux版本是centos的7.0版本,然后Mysql版本为此时较新的8.0.13版本.做最 ...
- 在阿里云centOS7上部署Redis 5.0.5主从 + 哨兵模式
一.在两台服务器上分别安装.配置Redis 5.0.5 ,为一主一从 安装Redis关键命令: 将安装包上传至:/home 目录下解 压:.tar.gz 安装依赖:yum install gcc 安装 ...
- 开源微信管家平台——JeeWx 捷微4.0 微服务版本发布,全新架构,全新UI,提供强大的图文编辑器
JeeWx捷微4.0 微服务版本发布^_^ 换代产品(全新架构,全新UI,提供强大的图文编辑器) JEEWX 从4.0版本开始,技术架构全新换代,采用微服务架构,插件式开发,每个业务模块都是独立的 ...
- ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借
ASP.NET MVC深入浅出系列(持续更新) 一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...
随机推荐
- 天翼云安装nexus3.37.1
有点操蛋,官网网络太慢了! 百度了不少网友的内容,综合如下 总体是个皮毛,但已经可以用于开发了! 一.下载和安装 https://download.sonatype.com/nexus/3/nexus ...
- HTTP 协议学习:1-HTTP概述
背景 原文:HTTP概述 HTTP是一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议).它是在 Web 上进行数据交换的基础,是一种 client-server 协议,也就是说, ...
- “进口”双核A53@1.4GHz仅188元起,超高性价比!“邮票孔”AM62x工业核心板,正式发布!
创龙科技作为TI官方合作伙伴,在2022年9月即推出搭载TI最新明星处理器AM62x的工业核心板-SOM-TL62x(B2B版本).为了让工业客户进一步降低产品成本,并提高产品连接的可靠性,我们再次推 ...
- mybatis 逆行工程 附源码
导读 逆向工程说白了,就可以简化开发工作量,自动生成一些死板的东西,比如POJO.映射文件等等,然后在将代码拷贝至实际工程,直接拿来用! 项目结构 GeneratorSqlMap.java impor ...
- (五)Redis 缓存异常、应对策略
1.缓存和数据库不一致 只要我们使用 Redis 缓存,就必然会面对缓存和数据库间的一致性保证问题,这里的"一致性"包含了两种情况:缓存中有数据且与数据库中的值相同.缓存中没有数据 ...
- c 语言学习第五天
break 语句 在循环体中使用 break,可以跳出循环 打印 10 以内的数. #include<stdio.h> int main(){ int i,j = 20; for(i = ...
- Apache基于IP和端口
Apache基于IP 步骤1:添加并配置虚拟网卡 添加虚拟网卡:通常在虚拟机环境中,可以通过虚拟机软件(如VMware或VirtualBox)的网络设置来添加额外的网络适配器. 配置IP地址:编辑/e ...
- Pandas库学习笔记(3)---Pandas Series
Pandas Series Pandas Series基本操作 pandas.Series Series结构如下: pandas.Series(data, index, dtype, copy) 构造 ...
- Docker Engine在Centos下的安装
实践环境 Centos7.8 先决条件 CentOS 7.8. 必须开启 centos-extrasyum仓库源.默认是开启的,如果关闭了,需要重新开启,如下 编辑 /etc/yum.repos.d/ ...
- 单细胞测序最好的教程(十四)测序原始数据公开至NCBI数据库
作者按 国内对于单细胞测序相关的中文教程确实不够全面,当然NCBI官网给的上传教程也比较详细了,所以变成了会者不难.本教程你现在可能用不上,但是你如果做单细胞测序,那么未来你一定会用上,建议收藏. 在 ...