二,MySQL数据库主从复制的介绍及搭建(收藏)

news2024/9/23 16:21:01

一,介绍概述

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

  • DDL:数据定义语言,用来定义数据库对象(数据库,表,字段)
  • DML:数据操作语言,用来对数据库表中的数据增删改

MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。
在这里插入图片描述
MySQL主从复制的优点主要包含以下三个方面:

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

二,原理

MySQL主从复制的核心就是 二进制日志,具体的过程如下:
在这里插入图片描述
从上图来看,复制分成三步:

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

三,搭建

1,服务器准备

在这里插入图片描述

准备好两台服务器之后,对两台服务器开放3306端口号或者关闭防火墙,测试环境可以选择关闭防火墙,生产环境建议开放端口号,在上述的两台服务器中分别安装好MySQL,并完成基础的初始化准备(安装、密码配置等操作)工作。 其中:

  • 192.168.200.200 作为主服务器master
  • 192.168.200.201 作为从服务器slave

2,主库配置

  1. 修改配置文件 /etc/my.cnf
# mysql 服务ID,保证整个集群环境中唯一,取值范围:1 – 2^32-1,默认为1
server-id=1
# 是否只读,1 代表只读, 0 代表读写
read-only=0
# 忽略的数据, 指不需要同步的数据库
#binlog-ignore-db=mysql
# 指定同步的数据库
#binlog-do-db=db01
  1. 重启MySQL服务器
systemctl restart mysqld
  1. 登录MySQL,创建远程连接的账号,并授予主从复制权限
#创建itcast用户,并设置密码,该用户可在任意主机连接该MySQL服务
CREATE USER 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456';
#为 'itcast'@'%' 用户分配主从复制权限
GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';
  1. 通过指令,查看二进制日志坐标
show master status;

在这里插入图片描述

  • File:当前正在写入的二进制日志文件名
  • Position:当前正在写入的二进制日志文件的位置
  • Binlog_Do_DB:指定需要写入二进制日志的数据库名
  • Binlog_Ignore_DB:指定不需要写入二进制日志的数据库名

3,从库配置

  1. 修改配置文件 /etc/my.cnf
# mysql 服务ID,保证整个集群环境中唯一,取值范围:1 – 2^32-1,和主库不一样即可
server-id=2
# 是否只读,1 代表只读, 0 代表读写
read-only=1
# 上面设置的只读只是对普通用户只读,超级管理员super只读命令如下
#super-read-only=1
  1. 重新启动MySQL服务
systemctl restart mysqld
  1. 登录MySQL,设置主库配置
# mysql8.0.23的语法
CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.200.200', SOURCE_USER='itcast',SOURCE_PASSWORD='Root@123456', SOURCE_LOG_FILE='binlog.000004',SOURCE_LOG_POS=663;
# 如果mysql是8.0.23之前的版本,执行如下sql:
CHANGE MASTER TO MASTER_HOST='192.168.200.200', MASTER_USER='itcast',MASTER_PASSWORD='Root@123456', MASTER_LOG_FILE='binlog.000004',MASTER_LOG_POS=663;

在这里插入图片描述
4. 开启同步操作

# mysql8.0.22版本之后使用
start replica;
# mysql8.0.22版本之前使用
start slave;
  1. 查看主从同步状态
# 8.0.22之后
show replica status; 
# 8.0.22之前
show slave status; 

在这里插入图片描述

4,测试

首先在主库上面创建数据库,表,添加数据,然后在从库中进行查询是否存在从而验证主从复制是否搭建成功。

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

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

相关文章

HRS--人力资源系统(Springboot+vue)--打基础升级--(二)写个主菜单导航界面

1. 华为OD机考题 答案 2023华为OD统一考试(AB卷)题库清单-带答案(持续更新) 2023年华为OD真题机考题库大全-带答案(持续更新) 2. 面试题 一手真实java面试题:2023年各大公司java面试真题汇总--…

计算机 数进制转换;存储MB与带宽Mbps

参考:https://zhuanlan.zhihu.com/p/459817484 1、计算机 数进制转换 1)与十进制相关的转换 2)与二进制相关的转换 二进制是Binary,简写为B;八进制是Octal,简写为O;十进制是Decimal&#xff…

117页数字化转型与产业互联网发展趋势及机会分析报告PPT

导读:原文《》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 喜欢文章,您可以点赞评论转发本文,了解更多内容请私信:方…

Ubuntu16.04-ros-kinetic环境搭建笔记=1=

tips:搬运资料,留个记录 安装Ubuntu Ubuntu官网下载地址 安装 虚拟机安装Ubuntu 最好断网安装Ubuntu,可以节约时间 Ubuntu基础设置 Ubuntu换国内源 换成清华源 sudo apt upgradeVMwareTool安装 把这个压缩包拖到桌面,否则只读…

PyTorch翻译官网教程-TEXT CLASSIFICATION WITH THE TORCHTEXT LIBRARY

官网链接 Text classification with the torchtext library — PyTorch Tutorials 2.0.1cu117 documentation 使用torchtext库进行文本分类 在本教程中,我们将展示如何使用torchtext库来构建用于文本分类分析的数据集。 使用迭代器访问原始数据构建数据处理管道…

JAVA基础知识(四)——面向对象(上)

面向对象(上) 一、面向对象的概念1.1 何谓“面向对象”的编程思想1.2 面向过程(POP)与面向对象(OOP)1.3 面向对象的思想概述 二、类和对象2.1 面向对象的思想概述 三、对象的创建和使用3.1 设计类以及类和对象的使用3.2 类和对象 四、类的成员之一&#…

leetcode 125.验证回文串

⭐️ 题目描述 🌟 leetcode链接:https://leetcode.cn/problems/valid-palindrome/ 思路: 这道题只判断字符串中的字母与数字是否是回文。虽然小写大写字母可以互相转换,但是里面是含有数字字符的,所以先统一&#xff…

solr快速上手:聚合分组查询|嵌套分组指南(十二)

0. 引言 solr作为搜索引擎经常用于各类查询场景,我们之前讲解了solr的查询语法,而除了普通的查询语法,有时我们还需要实现聚合查询来统计一些指标,所以今天我们接着来查看solr的聚合查询语法 1. 常用聚合查询语法 以下演示我们…

虚幻官方项目《CropOut》技术解析 之 程序化岛屿生成器(IslandGenerator)

开个新坑详细分析一下虚幻官方发布的《CropOut》,文章会同步发布到我在知乎|CSDN的专栏里 文章目录 概要Create Island几何体生成部分随机种子Step 1Step 2Step 3Step 4Step 5Step 6 岛屿材质部分动态为草地设置颜色 程序设计的小技巧其它Platform Switch函数 概要 …

Python接口自动化测试实战教程

接口自动化测试是指通过编写程序来模拟用户的行为,对接口进行自动化测试。Python是一种流行的编程语言,它在接口自动化测试中得到了广泛应用。下面详细介绍Python接口自动化测试实战。 1、接口自动化测试框架 在Python接口自动化测试中,我们…

TEE OS中使用secure timer

我们知道Arm的架构设计中,timer这一块是有缺陷的:Timer的TVAL功能不能同时给EL3和S-EL1使用,这是硬件的设计。在ATF和TEE OS的代码中,只能有一处使用,并且也需要设计者实现提前约定好。 好在大多数的TEE OS 都不会去使…

Amazon CloudFront 部署小指南(六)- Lambda@Edge 基础与诊断

内容简介 本文适用于希望使用 Amazon CloudFront LambdaEdge 提升 Amazon CloudFront 边缘计算能力的用户,旨在帮助您更好的进行 CloudFront LambdaEdge 的开发、调试、测试、部署等工作。 首先我们会对 CloudFront LambdaEdge 做个简单的介绍,然后分七个…

干货|工作中要使用Git,看这篇文章就够了

本文将从 Git 入门到进阶、由浅入深,从常用命令、分支管理、提交规范、vim 基本操作、进阶命令、冲突预防、冲突处理等多方面展开,足以轻松应对工作中遇到的各种疑难杂症,如果觉得有所帮助,还望看官高抬贵手给个赞呗,感…

回归预测 | MATLAB实现BES-SVM秃鹰搜索优化算法优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BES-SVM秃鹰搜索优化算法优化支持向量机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现BES-SVM秃鹰搜索优化算法优化支持向量机多输入单输出回归预测(多指标,多图)效…

第16集丨一起创建Vue脚手架吧

目录 一、安装Vue CLI1.1 配置 npm 淘宝镜像1.2 全局安装1.3 验证是否成功 二、创建vue_test项目2.1 cmd进入桌面2.2 创建项目2.3 运行项目2.4 查看效果 三、脚手架结构分析3.1 文件目录结构分析3.2 vscode终端打开项目 一、安装Vue CLI CLI:command-line interface…

re学习(33)攻防世界-secret-galaxy-300(脑洞题)

下载压缩包: 下载链接:https://adworld.xctf.org.cn/challenges/list 参考文章:攻防世界逆向高手题之secret-galaxy-300_沐一 林的博客-CSDN博客 发现这只是三个同一类型文件的三个不同版本而已,一个windows32位exe&#xff0…

VBA技术资料MF45:VBA_在Excel中自定义行高

【分享成果,随喜正能量】可以不光芒万丈,但不要停止发光。有的人陷入困境,不是被人所困,而是自己束缚自己,这时"解铃还须系铃人",如果自己无法放下,如何能脱困? 。 我给V…

【C++】C++ 语言对 C 语言的加强 ③ ( 类型检查增强 - 所有函数和变量必须有类型 | 新增 bool 类型 - bool 类型简介 )

文章目录 一、类型检查增强 - 所有函数和变量必须有类型1、C 语言函数类型 - 函数参数与返回值类型可以不确定2、C 语言函数类型 - 函数参数与返回值类型必须写明 二、新增 bool 类型 - bool 类型简介 一、类型检查增强 - 所有函数和变量必须有类型 1、C 语言函数类型 - 函数参…

arduino Xiao ESP32C3 oled0.96 下雪花

Xiao ESP32C3使用oled 0.96实现下雪的功能 雪花下落的时候, 随机生成半径和位置 sandR和sandX,sandY 保存雪花下落位置的时候, 将其周边一圈设置为-1, 标记为有雪花 其他雪花下落的时候, 其他雪花的一圈如果遇到-1, 则停止下落, 并重复2 #include "oled.h" void …

Java反射机制 (秒懂百科)

一、什么是反射? 反射允许对成员变量,成员方法和构造方法的信息进行编程访问。。 反射是一种机制。对于任何一个类,都能知道这个类的所有属性和方法。对于任何一个对象,都能调用这个对象的所有属性和方法。这种动态获取类的信息和…