Mysql高阶第一章 主从架构的复现

news2025/1/13 10:17:23

这里写目录标题

  • 前言
  • 第一章 找到主数据库和从数据库对应的虚拟机
    • 1.1 查对应虚拟机IP
    • 1.2 rpm 查找数据库是否安装
    • 1.3 查找数据库详细配置信息
  • 第二章 启动主从复制
    • 2.1 SHOW SLAVE STATUS\G;
    • 2.2 Slave_IO_Running: No
    • 2.3 解决方案
      • 2.3.1 进入slave中输入,停止从库同步:
      • 2.3.2 进入master中输入,清空日志
      • 2.3.3 进入master中输入,记录状态信息
      • 2.3.4 之后进入从库配置,不要再动主库
      • 2.3.5 测试
      • 2.3.6 从库里面一开始没有数据
      • 2.7 测试后验证确实多了一条数据
  • 第三章 验证主库

前言

这其实是一个很久以前搭的项目,五月在面移动的时候,面试官就问了我知晓哪些数据库的高级特性,有没有做过集群部署,我说我没有做过,只是搭建过分布式,然后就是分布式里面的主从架构。但是这个时候又要涉及到主从架构里面的一些原理问题。
咱们就先来考虑一下一主一从架构
本文并不是从0到1的搭建过程,而是从1到1.01的练习版本,如果有想搭建的,可以在小破站上看康师傅讲解。
在这里插入图片描述

第一章 找到主数据库和从数据库对应的虚拟机

1.1 查对应虚拟机IP

当时配置的时候,虚拟机配的太多了,搞得直接分辨不了这些虚拟机哪个是哪个了
在这里插入图片描述如上图所示,链接建的太多了

来确定有没有安装数据库:

1.2 rpm 查找数据库是否安装

rpm -qa | grep mysql

查出来这个结果

[root@centos121 ~]# rpm -qa | grep mysql
mysql-community-client-plugins-8.0.25-1.el7.x86_64
mysql-community-client-8.0.25-1.el7.x86_64
mysql-community-common-8.0.25-1.el7.x86_64
mysql-community-libs-8.0.25-1.el7.x86_64
mysql-community-server-8.0.25-1.el7.x86_64

1.3 查找数据库详细配置信息

这一步需要确定哪个
最后的解决方案,就是vim my.cnf,一个个看配置信息,因为我当时是照着尚硅谷那个康师傅Mysql配的嘛
同时看那个初始的参照配置文档

主节点的特点是如下图所示
在这里插入图片描述
从节点中,my.cnf 是这样的
在这里插入图片描述
记下这两个设备的IP地址

主:192.168.80.121
从:192.168.80.120

第二章 启动主从复制

这个启动并不是很顺利,好不容易找到主库和从库,结果呢,找不到

2.1 SHOW SLAVE STATUS\G;

标题这个语句其实是有问题的,问题的关键就是这个
不可以加这个符号

ERROR: 
No query specified

2.2 Slave_IO_Running: No

这个错误具体来是这样的,类似于binary log的读取出现了问题,在slave这个数据库里面,它会报1236的错误。

Last_IO_Error: Got fatal error 1236 from master解决方法
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
               Last_SQL_Errno: 0

由于清数据导致主从库不同步了

2.3 解决方案

2.3.1 进入slave中输入,停止从库同步:

mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.01 sec)

2.3.2 进入master中输入,清空日志

mysql> flush logs;
Query OK, 0 rows affected (0.02 sec)

2.3.3 进入master中输入,记录状态信息

mysql> show master status;
+----------------+----------+--------------+------------------+-------------------+
| File           | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------+----------+--------------+------------------+-------------------+
| xyt-bin.000005 |      156 |              |                  |                   |
+----------------+----------+--------------+------------------+-------------------+

2.3.4 之后进入从库配置,不要再动主库

mysql> CHANGE MASTER TO MASTER_LOG_FILE='xyt-bin.000005',MASTER_LOG_POS=156;
Query OK, 0 rows affected, 3 warnings (0.01 sec)

mysql>  start slave;
Query OK, 0 rows affected, 1 warning (0.03 sec)

mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.80.121
                  Master_User: slave1
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: xyt-bin.000005
          Read_Master_Log_Pos: 156
               Relay_Log_File: centos121-slave-relay-bin.000002
                Relay_Log_Pos: 322
        Relay_Master_Log_File: xyt-bin.000005
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 156
              Relay_Log_Space: 541
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1
                  Master_UUID: d2f34f1e-df67-11ed-bf42-000c29229240
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
       Master_public_key_path: 
        Get_master_public_key: 0
            Network_Namespace: 
1 row in set, 1 warning (0.00 sec)

2.3.5 测试

在这里插入图片描述

2.3.6 从库里面一开始没有数据

在这里插入图片描述

2.7 测试后验证确实多了一条数据

在这里插入图片描述

第三章 验证主库

在这里插入图片描述

121确实是主节点
在这里插入图片描述
二次验证配置完成

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

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

相关文章

WebRTC音视频通话-新增或修改SDP中的码率Bitrate限制

WebRTC音视频通话-新增或修改SDP中的码率Bitrate限制参数 之前搭建ossrs服务,可以查看:https://blog.csdn.net/gloryFlow/article/details/132257196 之前实现iOS端调用ossrs音视频通话,可以查看:https://blog.csdn.net/gloryFlo…

PHP实践:分布式场景下的Session共享解决方案实现

🏆作者简介,黑夜开发者,全栈领域新星创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责…

(1)window配置微软商店中的Ubuntu,及错误解决方法

(1)首先,在微软商店中搜索“Ubuntu”,下载你喜欢的版本(此处) (2)设置适用于window的Linux子系统,跟着红色方框走 点击“确定”之后,会提示你重启电脑,按要求重启电脑即可…

【算法题解】53. 计封闭岛屿的数目

这是一道 中等难度 的题 https://leetcode.cn/problems/number-of-closed-islands/ 题目 二维矩阵 grid 由 0 0 0(土地)和 1 1 1 (水)组成。岛是由最大的 4 4 4 个方向连通的 0 0 0 组成的群,封闭岛是一个 完全 由…

使用shift关键字,写一个带二级命令的脚本(如:docker run -a -b -c中的run)

省流:shift关键字 探索思路 最近有一个小小的需求,写一个类似于docker run -a -b -c这样的脚本,这个脚本名为doline,它本身可以执行(doline -a -b -c),同时又带有几个如run、init、start这样的…

【Pytroch】基于K邻近算法的数据分类预测(Excel可直接替换数据)

【Pytroch】基于K邻近算法的数据分类预测(Excel可直接替换数据) 1.模型原理2.数学公式3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 K最近邻(K-Nearest Neighbors,简称KNN)是一种简单但常用的机器…

python编程基础与案例集锦,python编程入门经典

大家好,本文将围绕python编程基础与案例集锦展开说明,python编程入门与案例详解是一个很多人都想弄明白的事情,想搞清楚python入门程序例子需要先了解以下几个事情。 【程序1】 题目:输入一行字符,分别统计出其中英文字…

【c++】七夕快到了却还没对象?手把手教你new一个出来!

前言 本章给大家带来的是C内存管理。在C语言阶段,我们经常使用malloc,calloc,realloc,free进行内存管理。但是,C语言的内存管理存在很多缺陷,会对程序的稳定性和安全性造成影响。 不过,C语言的…

cubemx hal stm32 舵机 可减速 任意位置停止 驱动代码

CubeMX配置 对于 STM32 F407VE 这里的84是来自APB1那路2倍频得到: 代码部分 两个舵机都是180度的 servo.c #include "servo.h" #include "tim.h" #include "stdio.h"__IO uint32_t g_SteerUWT[2] {0}; uint16_t g_SteerDeg[…

开发一个RISC-V上的操作系统(七)—— 硬件定时器(Hardware Timer)

目录 往期文章传送门 一、硬件定时器 硬件实现 软件实现 二、上板测试 往期文章传送门 开发一个RISC-V上的操作系统(一)—— 环境搭建_riscv开发环境_Patarw_Li的博客-CSDN博客 开发一个RISC-V上的操作系统(二)—— 系统引导…

Monkey测试真的靠谱吗?

Monkey测试,顾名思义,就是模拟一只猴子在键盘上乱敲,从而达到测试被测系统的稳定性。Monkey测试,是Android自动化测试的一种手段,Monkey测试本身非常简单,Android SDK 工具支持adb Shell命令,实…

jvm里的内存溢出

目录 堆溢出 虚拟机栈和本地方法栈溢出(栈溢出很少出现) 方法区和运行时常量池溢出 本机内存直接溢出(实际中很少出现、了解即可) 堆溢出 堆溢出:最常见的是大list,list里面有很多元素 堆溢出该怎么解决…

C++红黑树

一、红黑树的概念 红黑树是一种二叉搜索树,在其每个节点上增加一个存储位用于表示节点的颜色,可以是Red或Black 通过对任何一条从根到叶子的路径上的各个节点着色方式的限制,红黑树确保没有一条路径比其他路径长两倍 红黑树的性质&#xff…

SQL | 汇总数据

9-汇总数据 9.1-聚集函数 在实际开发过程中,可能会遇到下面这些情况: 确定大于某个值的有多少行数据,比如游戏排行榜,查询玩家排行多少名。 获取表中某些行的和,比如双十一当天,某个用户总订单价格是多少…

208、仿真-51单片机脉搏心率与心电报警Proteus仿真设计(程序+Proteus仿真+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一&a…

回归预测 | MATLAB实现基于PSO-LSSVM-Adaboost粒子群算法优化最小二乘支持向量机结合AdaBoost多输入单输出回归预测

回归预测 | MATLAB实现基于PSO-LSSVM-Adaboost粒子群算法优化最小二乘支持向量机结合AdaBoost多输入单输出回归预测 目录 回归预测 | MATLAB实现基于PSO-LSSVM-Adaboost粒子群算法优化最小二乘支持向量机结合AdaBoost多输入单输出回归预测预测效果基本介绍模型描述程序设计参考…

MySQL8安装和删除教程 保姆级(Windows)

下载 官网: mysql官网点击Downloads->MySQL Community(GPL) Downloads->MySQL Community Server(或者点击MySQL installer for Windows) Windows下有两种安装方式 在线安装 一般带有 web字样 这个需要联网离线安装 一般没有web字样 安装 下载好之后,版本号可以不一样&…

Web 自动化测试学会这一招,下班至少早一小时

♥ 前 言 大家都知道,我们在通过 Selenium 执行 Web 自动化测试时,每次都需要启动/关闭浏览器,如果是多线程执行还会同时打开多个,比较影响工作的正常进行。那有没有办法可以不用让浏览器的自动化执行干扰我们的工作呢&#xf…

graphab 教程 ——生成廊道

Graphab软件包括图谱创建、基于图谱的连通性计算、分析与推广、制图四个模块。Graphab软件的图谱创建基于栅格数据进行,包括斑块识别和连接建立两个步骤。Graphab 软件可识别的栅格数据格式包括TIFF、ASCI和RST,栅格像元记录数值用于识别斑块类型,识别规则可以选择四邻域或八邻…

B100-技能提升-线程池分布式锁

目录 线程池什么是线程池?为什么用线程池?线程池原理常见四种线程池和自定义线程池 线程池 什么是线程池? 池化技术 为什么用线程池? 1 由于设置最大线程数,防止线程过多而导致系统崩溃。 2 线程复用,不需要频繁创建或销毁…