Mysql主从原理

news2025/1/9 1:52:29

1.为什么要主从?

什么东西都有丢失或损坏的可能,所以备份是一个重要的手段。

2.备份机制?

 对于主从库的分工: "主写从读"

中继日志文件我的理解是一个大的临时区,主库推送过来的数据不用同步进行到从库,这样会快一些,因为C线程工作相对慢的过程,它可以慢慢消费中继日志的数据。

1.主库发生收到写请求后,A线程会更变二进制日志文件并推送sql到从库。

2.从库B线程负责接收并将读取的二进制文件写入到中继日志文件

3.从库C线程定时检测到中继日志文件的改变,就读取变化的sql并执行,这样完成主从复制

3.主从延迟切换,造成从库数据丢失

基于性能考虑,主库的写入流程是A线程异步执行,所以要推送的数据是不可控的,同步从库也是个时间差(即中从延迟)

在发生中从延迟时,数据库的性能会下降,此时切换到从库进行读写,虽然可以保证数据库的可用性,但是,中从延迟那部分数据的数据会丢失而且是不可逆的。

1.主库配置

    1.1 找到配置文件 my.cnf (Window my.ini)这里以linux为准

server-id=1                #(唯一id,主库和从库不能重复)

log-bin=log/mybiglog       #(设置存储目录,即开启二进制文件,随意)

binlog_row_image=full      #当自建MySQL的版本大于5.6时,则必须设置该项

/etc/init.d/mysqld restart #修改完成后,重启MySQL进程

show master status         #查看Binlog文件所在位置


1.2创建账户和分配权限

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

username:待创建的账号。
host:允许该账号登录的主机,如果允许该账号从任意主机登录数据库,可以使用百分号(%)。
password:账号的密码。


对账号授予指定库表的权限。
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

对账号授予建库建表的权限。
GRANT CREATE ON *.* TO 'username'@'host' WITH GRANT OPTION;


说明
privileges:授予该账号的操作权限,如SELECT、INSERT、UPDATE等,如果要授予该账号所有权限,则使用ALL。
databasename:数据库名。如果要授予该账号具备所有数据库的操作权限,则使用星号(*)。
tablename:表名。如果要授予该账号具备所有表的操作权限,则使用星号(*)。
username:待授权的账号。
host:允许该账号登录的主机,如果允许该账号从任意主机登录,则使用百分号(%)。
WITH GRANT OPTION:授予该账号使用GRANT命令的权限,该参数为可选。


例如,授予dtsmigration账号具备所有数据库和表的所有权限,并允许从任意主机登录数据库,命令如下。

GRANT ALL ON *.* TO 'dtsmigration'@'%';
CREATE USER 'rep1'@'%' IDENTIFIED BY '123456'; #创建用户

GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'113.57.42.85'; #分配复制权限

flush privileges  #刷新权限

show master status  #查看主库状态

2.从库配置

server-id=2                #(唯一id,主库和从库不能重复)



2.2 重启mysql,打开mysql会话,执行同步sql脚本

mysql> CHANGE MASTER TO 
   ->   MASTER_HOST='192.168.3.21',
   ->   MASTER_USER='rep1',
   ->   MASTER_PASSWORD='123456',
   ->   MASTER_LOG_FILE='binlog.000001', # 这是查询主库状态时数据 不能随意写
   ->   MASTER_LOG_POS=1;                # 这是查询主库状态时数据 不能随意写

2.3 启动同步

start slave

 2.4查看状态

show slave status

Mysql主从同步配置_Young丶的博客-CSDN博客

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

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

相关文章

零基础学会Python编程——数据也分类:常见数据类型

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 ​编辑 前言 学习目标 一.常见数据类型 1.数字类型 (1&#xff09…

Can’t connect to MySQL server on ‘localhost’ (10061)

标题:Can’t connect to MySQL server on ‘localhost’ (10061) 一种情况是,mysql服务没有开启, 解决方式:以管理员身份进入cmd,然后输入net start mysql,注意这里的mysql,指的是你的mysql服务的名称&am…

万字长文,SpringSecurity实现权限系统设计

RBAC权限分析 RBAC 全称为基于角色的权限控制,本段将会从什么是RBAC,模型分类,什么是权限,用户组的使用,实例分析等几个方面阐述RBAC 思维导图 绘制思维导图如下 什么是RBAC RBAC 全称为用户角色权限控制&#xff…

MySQL笔记之一致性视图与MVCC实现

一致性读视图是InnoDB在实现MVCC用到的虚拟结构,用于读提交(RC)和可重复度(RR)隔离级别的实现。 一致性视图没有物理结构,主要是在事务执行期间用来定义该事物可以看到什么数据。 一、Read View 事务在正…

怎样高标准地个性化您的电商业务?教你一招搞定

怎样高标准地个性化您的电商业务?教你一招搞定! 想要增加销售额和打造一个客户喜爱的品牌,电子商务个性化是您成功的关键。但是,个性化您的在线购物体验的各个方面这个过程简直令人生畏。但是别怕,我将在这里告诉大家利…

计算机 - - - windows电脑搭建FTP局域网文件传输服务器

控制面板,打开程序和功能,启用或关闭Windows功能。 勾选这几个 然后点确定,应用更改成功后重启电脑生效。 打开IIS管理器。 添加ftp站点。 输入ftp站点名称,选择文件存放的物理路径。 ip地址设置为当前电脑的ip地址&#x…

重识Flutter — 探索Slivers的奇妙世界(综合实例)

前言 在前三篇文章中,从为什么要使用Sliver,再根据使用频率逐个解析Slivers系列的组件。相信您已经入门了Sliver的世界。为了更好的将Slivers相关的组件结合起来使用,本文将通过一个综合的案例来帮助你理解。 源代码:https://ww…

【动态规划】LeetCode 583. 两个字符串的删除操作 Java

583. 两个字符串的删除操作 我的代码,错误代码,只考虑到了字母出现的次数,没有考虑到两个字符串中字母出现的顺序 class Solution {public int minDistance(String word1, String word2) {int[] arr1 new int[26];int[] arr2 new int[26];…

Fiddler抓包工具笔记

一、简介 Fiddler代理相当于中介的角色 快捷键ShiftF5去缓存刷新 二、抓包 1. 设置过滤器 没有设置过滤器的话,会抓所有的包,非常乱会混淆 隐藏包含这些内容的URL 2. 快速定位到需要的包 点击:Webforms菜单 界面分析: …

SQlite3 编译

参考博客:https://blog.csdn.net/flowerspring/article/details/121268403 1.下载C源码以及def文件https://www.sqlite.org/download.html 2. 下载完成之后解压 sqlite-amalgamation获取C源码,解压sqlite-dll-win32-xx获取里面的def文件。 3.新建sqlite…

前端vue入门(纯代码)18

不管何时何地,永远保持热爱,永远积极向上!!! 【20.尚硅谷GitHub搜索案例_vue-resource实现】 1.vue-resource vue-resource 是 vue 中一个用于发送请求的插件。 vue 发送请求推荐使用 axios ,vue-resourc…

2023上半年软考系统分析师科目一整理-23

2023上半年软考系统分析师科目一整理-23 对于如下所示的序列图所描述的场景,最适合于采用的设计模式是(30);该模式适用的场合是(31)。 A.Visitor B.Strategy C.Observe…

TI AM64x工业核心板规格书(双核ARM Cortex-A53 + 单/四核Cortex-R5F + 单核Cortex-M4F,主频1GHz)

1 核心板简介 创龙科技SOM-TL64x是一款基于TI Sitara系列AM64x双核ARM Cortex-A53 单/四核Cortex-R5F 单核Cortex-M4F设计的多核工业级核心板,通过工业级B2B连接器引出5x TSN Ethernet、9x UART、2x CAN-FD、GPMC、PCIe/USB 3.1等接口。核心板经过专业的PCB Layo…

【C++练习】string:字符串题型训练(5道编程题)

【C练习】string:字符串题型训练 Ⅰ.字符串中的第一个唯一字符Ⅱ.字符串最后一个单词的长度Ⅲ.把字符串转换成整数Ⅳ.字符串相加Ⅴ.反转字符串 Ⅰ.字符串中的第一个唯一字符 解题思路: 第一种方法: 两次遍历 1.第一次遍历,将每个字符出现的次…

【HTTP 协议2】如何构造 HTTP 请求

文章目录 前言一、地址栏输入二、HTML 特殊标签三、form 表单四、ajax总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: 📕 JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 📗 Java数据结…

【Echarts】配置项归纳

【Echarts】配置项归纳 一、title二、legend三、grid四、xAxis/yAxis五、polar六、radiusAxis七、angleAxis八、radar九、dataZoom1. 内置型数据区域缩放组件2. 滑动条型数据区域缩放组件3. 框选型数据区域缩放组件 十、tooltip十一、axisPointer十二、toolbox十三、brush十四、…

不定长图文模型训练

文章目录 生成数据集模型选择计算均值和标准差训练代码测试集测试 生成数据集 import os import random from PIL import Image, ImageDraw, ImageFont, ImageFilter from io import BytesIO import timedef main():_first_num random.randint(1, 1000)_code_style [加, 减,…

【uniapp开发小程序】实现粘贴一段文字后,自动识别到姓名/手机号/收货地址

一、需求 在uni-app中开发小程序&#xff0c;实现粘贴一段文字后自动识别到手机号&#xff0c;并将手机号前面的内容作为姓名&#xff0c;手机号后面的内容作为收货地址&#xff0c;并去除其中的特殊字符和前缀标识。 实现效果&#xff1a; 二、实现方式&#xff1a; <…

【vue】vue.js中引入组件

目录 ⭐️一、点击按钮1弹出弹窗⭐️二、vue.js引入组件具体步骤1、创建自定义组件的文件夹&#xff08;以弹窗组件为例&#xff09;2、在index.vue中引入keyProductsTip.vue模块3、在index.vue中引入组件4、在index.vue中使用组件&#xff0c;点击按钮打开弹窗5、index.vue中的…

高级web前端开发工程师的主要职责模板(合集)

高级web前端开发工程师的主要职责模板1 职责&#xff1a; 1、web端页面的制作、开发和优化; 2、编写静态和动态页面和交互、特效等功能的脚本程序; 3、开发基于HTML5技术的可灵活定制、可扩展的前端UI组件; 4、优化前端架构&#xff0c;提高系统的灵活性和可扩展性; 5、开…