MySQL主从架构

1 主从架构解决了什么问题

随着业务的持续增长,单体数据库满足不了业务的需求,可能会出现负载过重,操作数据库速度变慢的情况。为了解决这个问题,数据库一般采用一主一从、一主多从的架构。

为了操作提高效率,减轻压力,采用读写分离:

• 主数据库只负责写

• 从数据库只负责读

2 主从复制的原理

  1. MySQL的主从复制基于主数据库的二进制日志(binlog)中记录所有对数据库的更改操作,所以主数据库需要开启二进制日志。

  2. 每个从数据库和主数据库进行配置连接。在主数据库上进行的任何更新操作都会同步给从数据库,从数据库接收主数据库的二进制日志。从数据库根据二进制日志进行数据操作。

  3. 从数据库执行的数据操作不会对主数据库造成干扰。即从数据库在备份数据过程中,主数据库可继续处理数据更新操作。

图片

3 主从复制配置实战

主数据库的搭建请参考之前的文章:【揭秘】Docker安装MySQL8.0大公开,你知道吗?

3.1 使用docker启动从数据库

docker run -p 3307:3306 -e MYSQL_ROOT_PSSWORD=123456 --name mysql-slaver -v /root/mysql2/conf/my.cnf:/etc/mysql/my.cnf -v /root/mysql2/logs:/var/log/mysql -v /root/mysql2/data:/var/lib/mysql -v /root/mysql2/mysql-files:/var/lib/mysql-files -d mysql:8.0

3.2 修改server_id

修改my.cnf配置文件,修改主数据库的server_id为1,从服的server_id为2,修改后重启数据库。

[root@VM-24-10-centos conf]# 
cat my.cnf 
[mysqld]
lower_case_table_names=1
server-id=1
#skip-grant-tables

使用MySQL命令查看是否设置成功,查询server_id是否可配置文件中一致

show variables like 'server_id';

3.3 修改server-uuid

修改data目录下的auto.cnf中的server-uuid,主从的server-uuid不能一致,否则会有报错(#Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.)

[root@VM-24-10-centos data]# cat auto.cnf 
[auto]
server-uuid=60a0cb5e-1a2f-11ee-8244-0242ac110003

3.4 在主数据库上新增用户

在主数据库上新增用户用于从数据库同步数据时,连接使用

1、创建新用户

create user ‘slave’@‘%’ identified by ‘slave12345’;

2、刷新权限

flush privileges;

3、赋予权限,%标识不限制主机

grant replication slave on . to ‘slave’@‘%’;

4、刷新权限

flush privileges;

5、查看用户

select host,user,plugin,authentication_string from mysql.user;

3.5 在主数据库上查看Master状态

查询Master状态,并记录 File 和 Position 的值

show master status;

在这里插入图片描述

3.6 在从数据库上获取主数据库的密钥

否则会报错(# error connecting to master ‘slave@10.0.24.10:3306’ - retry-time: 60 retries: 51 message: Authentication plugin ‘caching_sha2_password’ reported error: Authentication requires secure connection.)

mysql -u slave -pslave12345 -h 10.0.24.10 -P 3306 --get-server-public-key

3.7 在从数据库上设置同步

设置主数据库参数

change master to master_host ='10.0.24.10', master_port =3306, master_user ='slave', master_password ='slave12345', master_log_file ='binlog.000007', master_log_pos =156;
  • master_host 为主数据库的ip
  • master_port为主数据库的端口号
  • master_user,master_password为主数据库新建的同步数据使用的用户名和密码
  • master_log_files为查询主数据库状态时的File
  • master_log_pos为查询主数据库状态时的Position

3.8 同步命令

开始同步

start slave;当出现问题时,停止同步# 停止同步
stop slave;
reset slave;

3.9 查看设置是否成功

在从数据库上使用show slave status查看同步状态:

show slave status;

在这里插入图片描述
如上显示即为主从数据库搭建成功。


关注我,我们一起学习
在这里插入图片描述

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

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

相关文章

sql在线练习

SQLBolt - 学习 SQL - SQL 简介https://sqlbolt.com/拿走不谢!!! UIUC什么乱七八糟的啊

探讨下前端测试的常见场景

前端测试 场景 这边指的测试是指白盒测试,用代码来测试代码。 测试有利于提升代码质量。 代码功能和需求一致。根据需求,写测试。测试通过了,则表明需求实现了。保证代码重构后,未改坏以前的功能。代码重构后,能通过…

一文告诉你样机是什么,分享几个常用的样机模板

一个项目的诞生通常需要经历头脑构思、绘制设计和最终着陆。在这个过程中,样机制作往往是在着陆实践之前进行的。俗话说:“样机使用得好,草稿过早”。样机设计是产品或网站最终设计的生动、静态和视觉表现。它为用户提供了一种模拟现实的方式…

信息系统项目管理师教程 第四版【第7章-项目立项管理-思维导图】

信息系统项目管理师教程 第四版【第7章-项目立项管理-思维导图】 课本里章节里所有蓝色字体的思维导图

【uniapp】短信验证码输入框

需求是短信验证码需要格子输入框 如图 网上找了一个案例改吧改吧 直接上代码 结构 <template><view class"verify-code"><!-- 输入框 --><input id"input" :value"code" class"input" :focus"isFocus"…

数据结构之树(图解)

文章目录 前言一、树是什么&#xff1f;二、树的特点三、树的相关概念四、树的表示方法&#xff08;孩子兄弟表示法&#xff09;总结 前言 在学习完线性结构&#xff0c;例如顺序表、链表、栈、队列后&#xff0c;我们要开始学习一个新的数据结构----树 一、树是什么&#xf…

小白如何在一个月写一篇论文(中文核心,SCI)

小白如何半年发3篇sci的我教你如何快速“水”一篇sci论文_哔哩哔哩_bilibili 计算机视觉&#xff0c;cv领域 半年发3篇sci的我教你如何快速“水”一篇sci论文 计算机视觉(辅导 SCI EI 核心) 微信&#xff1a;whbwqq123或主页加up 小白如何快速写出一篇论文并成功发表&…

Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (二)

这是继上一篇文章 “Elasticsearch&#xff1a;使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation &#xff08;一&#xff09;” 的续篇。在这篇文章中&#xff0c;我主要来讲述 ElasticVectorSearch 的使用。 我们的设置和之前的那篇文章是一样的&#xff…

【C】C语言文件操作

1.为什么使用文件 我们前面学习结构体时&#xff0c;写通讯录的程序&#xff0c;当通讯录运行起来的时候&#xff0c;可以给通讯录中增加、删除数据&#xff0c;此时数据是存放在内存中&#xff0c;当程序退出的时候&#xff0c;通讯录中的数据自然就不存在了&#xff0c;等下…

大彩串口屏读写文件问题

分区 本文使用的是大彩串口屏M系列的&#xff1a; 串口屏内部有三个分区&#xff0c;分别为A、B、C三个区&#xff1a; A区&#xff1a;系统区&#xff0c;存储组态工程文件 B区&#xff1a;数据区&#xff0c;存储配置信息&#xff0c;记录数据、历史曲线等 C区&#xff1a;备…

3.线性神经网络

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 线性回归基础优化算法一、线性回归1、买房案例2、买房模型简化3、线性模型4、神经网络5、损失函数6、训练数据7、参数学习8、显示解9、总结 二、 基础优化算法1、梯度下降2、学习率3、小批量随机梯度下降4、批量大小5、…

docker+playwright

windows10 docker playwright 难点在于windows下docker的安装&#xff0c;以及官方hub被墙的困难。 wsl2 wsl2 ubuntu docker git clone https://gitee.com/lineuman/lcs_playwright.git npm install npx playwright test docker端口怎么映射到主机上面&#xff1f; 设置重…

图、深度优先(DFS)、广度优先(BFS)

图 基本介绍 表示方式 图的创建 from typing import Listclass Graph:vertex_list: List[str] [] # 存储顶点的数组edges: List[list] [] # 存储图中各条边的邻接矩阵num_edges: int 0 # 边的数总数def __init__(self, n: int):"""根据传入的顶点个数初始…

测开(性能测试---LoadRunner)

目录 一、LoadRunner的安装 二、Loadrunner的基本概念 三、开发测试脚本——VUG 3.1 脚本录制 3.2 脚本加强 四、设计场景——Controller LoadRunner是一款开源桌面应用软件&#xff0c;可用来模拟用户负载完成性能测试工作&#xff0c;LoadRunner的功能在版本不断升级的…

JWT详解解读读

&#x1f4d1;前言 本文主要是jwt解读文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日一句&#xff1a;努力一点&#…

WebDAV之π-Disk派盘 + 读出通知

手机各种推销通知太多,如何避免那些繁琐的通知内容,做出一键就能够阅读重要通知的最佳体验,帮助您更加快速和便捷的体验到那些应用内容?推荐大家使用读出通知。 读出通知APP可以设置接收通知的app,还可以用耳机操作,操作简单,你还可以指定播报设备,还有播报的声音的设置…

数据结构 | 顺序表专题

数据结构 | 顺序表专题 文章目录 数据结构 | 顺序表专题课前准备1. 目标2. 需要的储备知识3. 数据结构相关概念 开始顺序表1、顺序表的概念及结构2、顺序表分类3、动态顺序表的实现初始化顺序表顺序表的销毁顺序表的尾插顺序表的头插检查容量顺序表的尾删打印顺序表顺序表的头删…

【递归、搜索与回溯算法】第五节.129. 求根节点到叶节点数字之和和814. 二叉树剪枝

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;递归、搜索与回溯算法 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&am…

.jnlp

首先配置电脑的java环境。 百度搜索jre下载&#xff0c;会有很多结果&#xff0c;一般选择官网进行下载。 下载正确的jre版本。 我的电脑是windows 64位&#xff0c;根据你自己电脑的情况选择版本进行下载。不懂自己电脑是多少位的可以看下一步。 查看电脑是64位还是32…

如何改善设备综合效率(OEE)并提高工厂的生产力

在现代制造业中&#xff0c;提高设备综合效率&#xff08;Overall Equipment Efficiency&#xff0c;OEE&#xff09;是企业追求高效生产和优化生产能力的重要目标之一。OEE是一个关键的绩效指标&#xff0c;可以帮助企业评估设备的利用效率、生产效率和质量水平。本文将从三个…