MySQL主从复制,数据库最经典的主从复制你还不知道吗?我不允许!!!

2023-10-26

♥️作者:小刘在C站

♥️个人主页: 小刘主页 

♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生!

♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术

♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSDN让你我相遇!

目录

MySQL

主从复制

1 概述

2 原理

3 搭建

3.1 准备

3.2 主库配置

 字段含义说明:

3.3 从库配置

 3.4 测试


MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。

主从复制

1 概述

主从复制是指将主数据库的 DDL DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。
MySQL 支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。

 MySQL 复制的优点主要包含以下三个方面:

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

2 原理

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

 从上图来看,复制分成三步:

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

3 搭建

3.1 准备

 

准备好两台服务器之后,在上述的两台服务器中分别安装好 MySQL ,并完成基础的初始化准备 ( 安装、密码配置等操作 ) 工作。 其中:
192.168.200.200 作为主服务器 master
192.168.200.201 作为从服务器 slave

3.2 主库配置

1. 修改配置文件 /etc/my.cnf
#mysql 服务ID,保证整个集群环境中唯一,取值范围:1 – 232-1,默认为1
server-id=1
#是否只读,1 代表只读, 0 代表读写
read-only=0
#忽略的数据, 指不需要同步的数据库
#binlog-ignore-db=mysql
#指定同步的数据库
#binlog-do-db=db01
2. 重启 MySQL 服务器
systemctl restart mysqld

3. 登录 mysql ,创建远程连接的账号,并授予主从复制权限
#创建itcast用户,并设置密码,该用户可在任意主机连接该MySQL服务
CREATE USER 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456'
;
#为 'itcast'@'%' 用户分配主从复制权限
GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';
4. 通过指令,查看二进制日志坐标
show master status ;

 字段含义说明:

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

3.3 从库配置

1. 修改配置文件 /etc/my.cnf
#mysql 服务ID,保证整个集群环境中唯一,取值范围:1 – 2^32-1,和主库不一样即可
server-id=2
#是否只读,1 代表只读, 0 代表读写
read-only=1
2. 重新启动 MySQL 服务
systemctl restart mysqld
3. 登录 mysql ,设置主库配置
 
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;
上述是 8.0.23 中的语法。如果 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. 开启同步操作

start replica ; #8.0.22之后
start slave ; #8.0.22之前 
5. 查看主从同步状态
show replica status ; #8.0.22之后
show slave status ; #8.0.22之前

 3.4 测试

1. 在主库 192.168.200.200 上创建数据库、表,并插入数据
create database db01;
use db01;
create table tb_user(
id int(11) primary key not null auto_increment,
name varchar(50) not null,
sex varchar(1)
)engine=innodb default charset=utf8mb4;
insert into tb_user(id,name,sex) values(null,'Tom', '1'),(null,'Trigger','0'),
(null,'Dawn','1');
2. 在从库 192.168.200.201 中查询数据,验证主从是否同步

♥️关注,就是我创作的动力

♥️点赞,就是对我最大的认可

♥️这里是小刘,励志用心做好每一篇文章,谢谢大家

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL主从复制,数据库最经典的主从复制你还不知道吗?我不允许!!! 的相关文章

随机推荐

  • Qt实现TCP客户端和服务器通讯程序

    复习的心态过一遍之前基础的一些东西 Qt封装了QTcpServer和QTcpSocket两个类 其中QTcpServer继承自QObject 通过listen 函数监听传入的客户端连接 当Client连接上时 QTcpServer会发出ne
  • 使 QComboBox 下拉一个带复选框的树形列表

    背景 在项目开发过程中需要使 QComboBox 下拉一个树形列表 直接通过 setModel 和 setView 设置 combox 控件可以实现 但是在单击节点箭头按钮时也会隐藏下拉框的显示 因此需要重新实现 QComboBox 的方法
  • 解决vue 路由传参 页面刷新或者后退参数丢失的问题

    vue路由传递参数如果用params传递参数 那么页面刷新就会丢失数据 可以改用query来传递参数 这样刷新就不会丢失 this router push path business bizInspectionTaskSub query f
  • Db2 v11.1 Upgrade to V11.5 HADR 模式

    https www ibm com docs en db2 11 5 topic methods universal versus product specific fix packs Universal versus product sp
  • RocketMQ重置消费位点源码分析

    这里是weihubeats 觉得文章不错可以关注公众号小奏技术 文章首发 拒绝营销号 拒绝标题党 背景 最近在使用RocketMQ的重置消费位点的时候经常出现报错 所以就打算研究下RocketMQ是如何重置消费者的消费位点的 RocketM
  • 图像形态学处理(膨胀腐蚀开闭运算)——数字图像处理学习八(C++版)

    一 基本概念 1 形态学的基本思想是利用一种特殊的结构元来测量或提取输入图像中相应的形状或特征 以便进一步进行图像分析和目标识别 2 图像的形态学处理是对二值图像进行处理 所以在形态学处理前需要将图像二值化 3 结构元可以是任意形状 结构元
  • 可信执行环境(TEE)技术介绍(Trusted Execution Environment)

    本文对当前流行的移动终端TEE技术做简要概述 并对一些细节展开讨论 1 当前移动安全背景 当前移动终端面临这严重的安全威胁 威胁点如下图所示 因此移动厂商 用户 服务提供商等各方都对移动安全提出了强烈的需求 2 REE介绍 Rich Exe
  • 线程安全

    线程安全 多线程的执行顺序不可重现 但是必须要求执行结果必须可以重现 线程的共享数据操作不完整性就一定会出现数据被破坏 而导致结果无法预知的问题 线程的安全问题 同步处理的引入 在java语言中存在两种内建的synchronized语法 s
  • ng-model

    ng model指令用来将input select text area或自定义表单控件同包含它们的作用域中的属性进行绑定 它可以提供并处理表单验证功能 在元素上设置相关的CSS类 ng valid ng invalid等 并负责在父表单中注
  • 【解决】2021-07-30Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:

    Caused by org springframework beans factory BeanCreationException Error creating bean with name sqlTemplate defined in U
  • python实现向图像随机添加高斯白噪声,并修改尺寸

    基于python向图像随机添加高斯噪声 并修改尺寸 噪声分布设置为 均值为0 方差分布在0 50之间 coding utf 8 Created on Nov Mon 29 14 09 45 2021 author 瀛台夜雪 import o
  • 【opencv】基于opencv实现人脸识别,从环境搭建到代码实现(超详细教程)

    前言 目标 让计算机通过训练做到认识我或者检测出视频中的人是谁 本文是一个学习笔记 记录一下自己的实现过程 在实现过程中遇到的问题以及个人对知识的理解 一 环境配置 1 软件安装 首先先安装一下必须的软件 python pycharm op
  • 通俗易懂的java设计模式(6)-代理模式

    1 什么是代理模式 为某个对象提供一个代理对象 通过这个代理对象 可以控制对原对象的访问 通俗的解释 我们电脑桌面上的一个个快接方式 当我们点击这个快捷方式的时候 我们就间接地访问到了这个程序 2 静态代理 何为静态 即在程序运行之前 代理
  • java后端解决重复提交问题

    一 为什么会出现重复提交 主要是由于网络的延迟问题以及页面刷新的操作 二 表单的重复提交会导致的问题 主要能够造成很多脏数据 三 解决的办法 3 1 前端解决办法 通过前端的方法将提交按钮变灰 对于前端的办法这里就不做演示了 因为前端的控制
  • C++11标准中按值传递类对象参数的使用时机

    严正声明 本文系作者davidhopper原创 未经许可 不得转载 作为一名资深C 程序员 在C 98 03标准时代 一直将 不得按值传递类对象参数 的规定奉为圭臬 例如 void SetParam const std string nam
  • 自定义实现Java ListNode链表

    写在前面 今天写代码的时候 发现我居然被Java的ListNode的输入卡了半天 所以就打算写一篇博客来整理一下ListNode 链表的定义 首先ListNode就是链表 它的基本结构如下 及一个包含数据 和指针的结构 我们将一个节点的指针
  • Unity3D游戏编程——离散仿真作业

    Unity3D游戏编程 离散仿真作业 1 简答题asd 1 1解释游戏对象 GameObjects 和资源 Assets 的区别与联系 答 游戏对象 GameObjects 是一系列资源的组成序列 资源 Assets 是一系列可以被Unit
  • python tkinter.Text 高级用法 -- 设计功能齐全的文本编辑器

    众所周知 tkinter的Text文本框功能强大 Python自带的IDLE编辑器也是用tkinter编写的 这里作者也用tkinter的Text文本框等控件 设计功能较齐全的文本编辑器程序 目标功能 编辑文本文件 编辑二进制文件 字符会以
  • YOLO内卷时期该如何选模型?

    关注公众号 发现CV技术之美 本篇文章来自知乎 作者 迪迦奥特曼 原地址 https zhuanlan zhihu com p 566469003 前两天看到了美团微信公众号上的宣传 更新发布了新版YOLOv6 还放出了arxiv论文 更新
  • MySQL主从复制,数据库最经典的主从复制你还不知道吗?我不允许!!!

    作者 小刘在C站 个人主页 小刘主页 努力不一定有回报 但一定会有收获加油 一起努力 共赴美好人生 学习两年总结出的运维经验 以及思科模拟器全套网络实验教程 专栏 云计算技术 小刘私信可以随便问 只要会绝不吝啬 感谢CSDN让你我相遇 目录