【Mysql】主从复制

news2024/12/27 11:21:07

【Mysql】主从复制

文章目录

  • 【Mysql】主从复制
    • 1. 概述
    • 2. 原理
    • 3. 搭建
      • 3.1 准备工作
      • 3.2 主库配置
      • 3.3 从库配置

1. 概述

主从复制是指主数据库的 DDLDML 操作通过二进制日志传到从库服务器中,然后再从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。

MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。

image-20230419212047114

Mysql主从复制的优点:

  1. 主库出现问题,可以快速切换到从库提供服务。
  2. 实现读写分离,降低主库的访问压力。
  3. 可以在从库中执行备份,以避免备份期间主库不能写入的问题。

2. 原理

Mysql主从复制的核心就是 二进制日志 ,具体过程如下:

image-20230419212501498

由图可知,复制分成三步:

  1. Master 主库在事务提交时,会把数据变更记录在二进制日志文件 Binlog 中。
  2. 从库读取主库的二进制日志文件 Binlog ,写入到从库的中继日志 Relay log
  3. 从库重做中继日志 Relay log 中的事件,将改变反映它自己的数据。

3. 搭建

3.1 准备工作

准备至少两台mysql数据库,可以使用 docker 在同一台虚拟机上安装两个mysql数据库。参考文档: 点击查看

如果服务安装在不同的虚拟机上,要注意开放对应的端口。


3.2 主库配置

1)首先修改主库的配置文件,找到你的数据库配置文件 my.cnf

#mysql 服务ID,保证整个集群环境中唯一,取值范围:1 – 232-1,默认为1
server-id=1
#是否只读,1 代表只读, 0 代表读写
read-only=0
#忽略的数据, 指不需要同步的数据库
#binlog-ignore-db=mysql
#指定同步的数据库
#binlog-do-db=db01

image-20230419215514865

2)重启mysql服务器

docker restart mysql

3)创建远程连接账号并授权

#创建itcast用户,并设置密码,该用户可在任意主机连接该MySQL服务
CREATE USER 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
#为 'itcast'@'%' 用户分配主从复制权限
GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';

image-20230419220829214

4)通过指令,查看二进制日志坐标:

show master status ;

image-20230419220909337

  • File:从哪个日志文件开始推送日志文件
  • position:从哪个位置开始推送日志
  • binlog_ignore_db:指定不需要同步的数据库

3.3 从库配置

1)修改从库的配置文件 my.cnf

#mysql 服务ID,保证整个集群环境中唯一,取值范围:1 – 2^32-1,和主库不一样即可
server-id=2
#是否只读,1 代表只读, 0 代表读写
read-only=1

2)重启mysql

docker restart mysql-slave

3)登录mysql,设置主库配置:

CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.101.65', SOURCE_USER='itcast',
SOURCE_PASSWORD='123456', SOURCE_LOG_FILE='binlog.000121',
SOURCE_LOG_POS=663;

上述是8.0.23中的语法。如果mysql是 8.0.23 之前的版本,执行如下SQL:

CHANGE MASTER TO MASTER_HOST='192.168.101.65', MASTER_USER='itcast',
MASTER_PASSWORD='123456', MASTER_LOG_FILE='binlog.000121',
MASTER_LOG_POS=663;
参数名含义8.0.23之前
SOURCE_HOST主库IP地址MASTER_HOST
SOURCE_USER连接主库的用户名MASTER_USER
SOURCE_PASSWORD连接主库的密码MASTER_PASSWORD
SOURCE_LOG_FILEbinlog日志文件名MASTER_LOG_FILE
SOURCE_LOG_POSbinlog日志文件位置MASTER_LOG_POS

4)开启同步操作

#8.0.22之后
start replica ; 
#8.0.22之前
start slave ; 

5)查看主从同步状态:

#8.0.22之后
show replica status \G; 
#8.0.22之前
show slave status \G; 

image-20230419235750098


至此,主从复制搭建完成,可以在主库中创建数据库再查看从库是否也创建了数据库来测试是否搭建成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/439195.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小红书行业趋势分析,女性种草关键词有哪些?

在“她力量”崛起的当今,女性用户正不断引领新潮流,驱动产品、内容升级。女性个人观念、生活方式、消费偏好演变,需求重点势必不断更新。 今儿就女性用户的聚集地小红书平台,以及女性最关注的美妆、母婴两大行业,通过数…

完整支持Oracle PL/SQL,星环科技KunDB高兼容性实现低成本国产化替代

从中兴、华为等一系列高新科技企业被美国制裁,到俄乌冲突事件爆发后,西方各国相继宣布制裁俄罗斯,以Oracle、IBM、微软、SAP为代表的科技巨头暂停在俄服务,这一系列动作给我们敲响了加速国产化替代的警钟。数据库作为提供数据存储…

2024年浙大MBA提前批面试即将开始申请,如何操作?

在去年的这个时间点,浙大MBA提前批面试的申请系统已经打开并可以正常开始接受申请报名,而今年的申请时间会在什么时间点?那么又如何准备浙大MBA的提面申请呢?本期专注浙大的杭州达立易考教育为大家做一下梳理,帮助大家…

【机器学习】P21 正则化 Regularization(L1正则化 Lasso、L2正则化 Ridge、弹性网络正则化、Dropout正则化、早停法)

既然模型有概率发生过拟合现象,那么如何才能减少过拟合,或者防止过拟合的产生?方法之一就是正则化方法,Regularization; 我对正则化,有这样的理解:“我们既希望能够通过权重的调整从而建立更好…

数据结构考研版——括号的匹配问题栈的计算问题

一、括号的匹配问题 这玩意太简单了没什么讲头,就是括号一个一个进栈,匹配就出,以此类推 二、括号匹配问题代码 int isMatched(char left, char right) {if (left (&& right ))return 1;else if (left [ && right ])ret…

还在发愁项目去哪找?软件测试企业级Web自动化测试实战项目

今天给大家分享一个简单易操作的实战项目(已开源) 项目名称 ET开源商场系统 项目描述 ETshop是一个电子商务B2C电商平台系统,功能强大,安全便捷。适合企业及个人快速构建个性化网上商城。 包含PCIOS客户端Adroid客户端微商城…

Java语法理论和面经杂疑篇《十. 反射机制》

目录 1. 反射(Reflection)的概念 1.1 反射的出现背景 1.2 反射概述 1.3 Java反射机制研究及应用 1.4 反射相关的主要API 1.5 反射的优缺点 2. 理解Class类并获取Class实例 2.1 理解Class 2.1.1 理论上 2.1.2 内存结构上 2.2 获取Class类的实例(四种方法) 2.3 哪些类…

设计模式:创建者模式 - 原型模式

文章目录 1.概述2.结构3.实现4.案例5.使用场景6.扩展(深克隆) 1.概述 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 2.结构 原型模式包含如下角色: 抽象原型类:规定了具体…

nodejs+vue宠物商城健康医院挂号服务管理系统python+java+php

在前台,首先提供一个界面清晰、导航明确的首页,无论是会员还是游客都可以访问。游客通过首页查看该网站所要具备的功能,以及对应的周边商城信息,特别在周边商城模块,需要明确的进行介绍,突出周边商城特色和…

如何主动增加自己的开源项目star数的方法汇总

本篇文章主要讲解,通过自媒体、短视频、网络平台等渠道形式增加自己的开源项目的曝光度以增加star数的方法。 作者:任聪聪 日期:2023年4月20日 开源项目的star数在某些找工作的情况下是有一定的加分的,故此价值是一定的。但是自己…

arm64异常向量表

arm64异常向量表 1 arm64异常向量表2 linux arm64异常向量表3 kernel_ventry宏4 异常向量表的保存4. VBAR_ELx寄存器4.2 __primary_switched4.3 __primary_switched 1 arm64异常向量表 When an exception occurs, the processor must execute handler code which corresponds t…

电力系统谐波影响及治理

1.谐波 众所周知,理想的电力系统向用户提供的是一个恒定工频的正弦波形电压,但是由于各种原因,使这种理想状态在实际中无法存在。当正弦波电压施加在非线性电路上时,电流就变成非正弦波,非正弦电流在电网阻抗上产生压…

机器学习:基于逻辑回归和高斯贝叶斯对人口普查数据集的分类与预测

机器学习:基于逻辑回归和高斯贝叶斯对人口普查数据集的分类与预测作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要…

【python】采集每日必看黄色软件数据~

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 环境使用: Python 3.8 Pycharm 模块使用: requests >>> pip install requests re csv 安装模块:win R 输入cmd 输入安装命令 pip install 模块名 如果出现爆红 可能是因为 网络连接超时 切换国内…

【云原生】Dockerfile制作WordPress镜像,实现compose编排部署

文章目录 👹 关于作者前言环境准备目录结构 dockerfile制作镜像yum 脚本Dockerfile-mariadb 镜像Dockerfile-service 镜像docker compose 编排 提升✊ 最后 👹 关于作者 大家好,我是秋意临。 😈 CSDN作者主页 😎 博客…

谷歌Colab云端部署Stable Diffusion 进行绘图

系列文章目录 本地部署Stable Diffusion教程,亲测可以安装成功 Stable Diffusion界面参数及模型使用 文章目录 系列文章目录前言一、Colab是什么?二、操作步骤1.找到对应的脚本2.在谷歌Colab里执行脚本3.装载想要的模型4.开始绘图 前言 在之前的博客里…

设计模式:创建者模式 - 工厂模式

文章目录 1.概述2.简单工厂模式(非23种)2.1 结构2.2 实现2.3 优缺点2.4 扩展 3.工厂方法模式3.1 概念3.2 结构3.3 实现3.4 优缺点 4.抽象工厂模式4.1 概念4.2 结构4.3 实现4.4 优缺点4.5 使用场景 5.模式扩展6.JDK源码解析-Collection.iterator方法 1.概…

【Linux】线程安全——补充|互斥、锁|同步、条件变量

文章目录 一、知识补充线程的ID局部存储验证Thread.hpp——线程的封装 二、线程安全问题三、Linux线程互斥互斥相关概念互斥量mutexmutex的使用全局锁的使用局部锁的使用 mutex的理解Mutex.hpp——mutex的封装可重入VS线程安全死锁 四、Linux线程同步条件变量条件变量接口理解条…

工序流转二维码的应用和制作方法

很多中小型生产企业还在使用纸制的“工序流转卡”,每天交给专员人工录入到电脑上,不仅费时费力,还容易出错,更重要的是管理员不能实时掌握各个订单的进展情况,因此经常会发生订单延期交付的情况,给企业带来…

centos7.9系统部署NFS详细流程—2023.04

文章目录 NFS与RPC关系前提关闭防火墙和selinux安装 NFS 和 RPC测试取消挂载 NFS与RPC关系 简单点可以这么理解,RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。 NFS(Network File System)即网络文件…