当前位置: 首页 > news >正文

简述mysql 主从复制原理及其工作过程,配置一主两从并验证。

MySQL 主从同步是一种数据库复制技术,它通过将主服务器上的数据更改复制到一个或多个从服务器,实现数据的自动同步。

主从同步的核心原理是将主服务器上的二进制日志复制到从服务器,并在从服务器上执行这些日志中的操作。

MySQL主从同步是基于Bin Log实现的,而Bin Log记录的是原始SQL语句。

当主库数据发生变更时,写入本地Bin Log文件

  • 从库IO线程发起dump主库Bin Log文件的请求
  • 主库IO线程推送Bin Log文件到从库中
  • 从库IO线程把Bin Log内容写入本地的Relay Log文件中
  • 从库SQL线程读取Relay Log文件内容
  • 从库SQL线程重新执行一遍SQL语句

首先保持实验环境干净(关闭防火墙 selinux,克隆的机器是没有下载过MySQL的)

准备克隆了三台机子ip分别为192.168.1.130     192.168.1.133       192.168.1.134

同时下载

 yum install mysql-server -y

 选取ip为192.168.1.130作为主布机子

首先主库配置

 vim /etc/my.cnf
  grant replication slave on *.* to  rep@'192.168.1.%';

启动

 systemctl enable --now mysqld.service

在主库里授权一个用户

 create user rep@'192.168.1.%' identified with mysql_native_password by '123456';

查看binlog文件名(要用到)

 show master status;

接着配置另外两个从库

vim /etc/my.cnf

查看配置内容 


#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]#
# This group is read by the server
#
[mysqld]
server_id=133#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]#
# This group is read by the server
#
[mysqld]
server_id=134
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

 

接着启动

 systemctl enable --now mysqld.service
设置

change master to  master_host='192.168.1.130', master_user='rep', master_log_file='binlog.000001', master_log_pos=678;

查看状态

show slave status \G
*************************** 1. row ***************************Slave_IO_State: Waiting for source to send eventMaster_Host: 192.168.1.130Master_User: repMaster_Port: 3306Connect_Retry: 60Master_Log_File: binlog.000001Read_Master_Log_Pos: 678Relay_Log_File: localhost-relay-bin.000002Relay_Log_Pos: 323Relay_Master_Log_File: binlog.000001Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno: 0Last_Error:Skip_Counter: 0Exec_Master_Log_Pos: 678Relay_Log_Space: 537Until_Condition: NoneUntil_Log_File:Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_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: NoLast_IO_Errno: 0Last_IO_Error:Last_SQL_Errno: 0Last_SQL_Error:Replicate_Ignore_Server_Ids:Master_Server_Id: 130Master_UUID: 3928f497-d672-11ef-8e26-000c294d2ac6Master_Info_File: mysql.slave_master_infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Replica has read all relay log; waiting for more updatesMaster_Retry_Count: 86400Master_Bind:Last_IO_Error_Timestamp:Last_SQL_Error_Timestamp:Master_SSL_Crl:Master_SSL_Crlpath:Retrieved_Gtid_Set:Executed_Gtid_Set:Auto_Position: 0Replicate_Rewrite_DB:Channel_Name:Master_TLS_Version:Master_public_key_path:Get_master_public_key: 0Network_Namespace:
1 row in set, 1 warning (0.00 sec)

连接成功


进行测试

在主库创建库

 create database jj1;

创建表

create table jj(id int);

插入数据

insert into jj values(1),(2),(4);

连个从库中查看

 

相关文章:

简述mysql 主从复制原理及其工作过程,配置一主两从并验证。

MySQL 主从同步是一种数据库复制技术,它通过将主服务器上的数据更改复制到一个或多个从服务器,实现数据的自动同步。 主从同步的核心原理是将主服务器上的二进制日志复制到从服务器,并在从服务器上执行这些日志中的操作。 MySQL主从同步是基…...

Android 右键后无Java class创建

Android studio 创建java class : 最近几个月用Android studio 开发,因为电脑设置了一个新的用户使用,原来的android studio,打开之前的正常的项目总是报一些奇奇怪怪的错误,就重新安装了最新的版本 问题描述 但是新的android s…...

【从零开始入门unity游戏开发之——C#篇46】C#补充知识点——命名参数和可选参数

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、…...

哈尔滨有双线服务器租用吗?

哈尔滨有双线服务器租用吗?双线服务器是一种针对哈尔滨特有的网络环境优化的服务器解决方案,它能够同时支持中国电信和中国联通或移动其中两家主要ISP(互联网服务提供商)的连接。 由于中国南方地区多采用电信网络,而北…...

JVM 面试八股文

目录 1. 前言 2. JVM 简介 3. JVM 内存划分 3.1 为什么要进行内存划分 3.2 内存划分的核心区域 3.2.1 核心区域一: 程序计数器 3.2.2 核心区域二: 元数据区 3.2.3 核心区域三: 栈 3.2.4 核心区域四: 堆 4. JVM 类加载机制 4.1 类加载的步骤 4.1.1 步骤一: 加载 4…...

STM32 FreeRTOS内存管理简介

在使用 FreeRTOS 创建任务、队列、信号量等对象时,通常都有动态创建和静态创建的方式。动态方式提供了更灵活的内存管理,而静态方式则更注重内存的静态分配和控制。 如果是1的,那么标准 C 库 malloc() 和 free() 函数有时可用于此目的&#…...

【云岚到家】-day02-客户管理-认证授权

第二章 客户管理 1.认证模块 1.1 需求分析 1.基础概念 一般情况有用户交互的项目都有认证授权功能,首先我们要搞清楚两个概念:认证和授权 认证: 就是校验用户的身份是否合法,常见的认证方式有账号密码登录、手机验证码登录等 授权:则是该用…...

【达梦数据库】两地三中心环境总结

目录 架构监视器位置异步备库同步频率配置:dmtimer.ini断网测试异地切换过程&回切:允许丢数据模式切换回切 架构 2(1主1实时备库)1(实时备库)1(异步备库),分别为节点1、2、3、4监视器位置 …...

【springboot 集成 mybatis-plus】

springboot 集成 mybatis-plus 前言实战代码生成器自动填充字段 前言 正如MyBatis-Plus官网所说,MyBatis-Plus 是一个 MyBatis 的增强工具,提供了强大的CRUD操作,支持主键自动生成,代码生成器,自动填充字段等等&#…...

深入浅出 Go语言并发安全字典 sync.Map:原理、使用与优化

深入浅出 Go语言并发安全字典 sync.Map:原理、使用与优化 背景介绍 Go语言作为一种高效的并发编程语言,其标准库中提供了丰富的并发工具,如sync.WaitGroup、sync.Mutex等。然而,在实际开发中,我们经常需要在多个goroutine之间共享数据,这就涉及到并发安全的问题。传统的…...

【Go】Go数据类型详解—指针

1. 前言 在我看来,一门编程语言语法的核心就在于数据类型。而各类编程语言的基本数据类型大致相同:int整型、float浮点型、string字符串类型、bool布尔类型,但是在一些进阶数据类型上就有所不同了。本文将会介绍Go语言当中核心的数据类型——…...

道格拉斯-普克算法(DP)轮廓点精简(Python)

1、介绍 道格拉斯-普克算法由David H. Douglas和Thomas K. Peucker于1973年提出,主要用于简化曲线或折线。而实际中,激光点云的边缘点非常粗糙,如果直接将点进行连接,锯齿问题严重。经过DP算法处理后,数据显示会比较光…...

WPF如何跨线程更新界面

WPF如何跨线程更新界面 在WPF中,类似于WinForms,UI控件只能在UI线程(即主线程)上进行更新。WPF通过Dispatcher机制提供了跨线程更新UI的方式。由于WPF的界面基于Dispatcher线程模型,当你在非UI线程(例如后…...

Ubuntu 24.04 LTS 服务器折腾集

目录 Ubuntu 更改软件源Ubuntu 系统语言英文改中文windows 远程链接 Ubuntu 图形界面Windows 通过 openssh 连接 UbuntuUbuntu linux 文件权限Ubuntu 空闲硬盘挂载到 文件管理器的 other locationsUbuntu 开启 SMB 服务,并通过 windows 访问Ubuntu安装Tailscale&am…...

ROS机器人学习和研究的势-道-术-转型和变革的长期主义习惯

知易行难。说说容易做到难。 例如,不受成败评价影响,坚持做一件事情10年以上,专注事情本身。 机器人专业不合格且失败讲师如何让内心保持充盈的正能量(节选)-CSDN博客 时间积累 注册20年。 创作历程10年。 创作10年…...

Linux 管道操作

Linux 管道操作 在 Linux 中,管道(Pipe)是一个非常强大且常用的功能,它允许将一个命令的输出直接传递给另一个命令作为输入,从而能够高效地处理和分析数据。管道在多个命令之间建立数据流,减少了文件的读写…...

【Python】深入探讨Python中的单例模式:元类与装饰器实现方式分析与代码示例

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 单例模式(Singleton Pattern)是一种常见的设计模式,它确保一个类只有一个实例&…...

imbinarize函数用法详解与示例

一、函数概述 众所周知,im2bw函数可以将灰度图像转换为二值图像。但MATLAB中还有一个imbinarize函数可以将灰度图像转换为二值图像。imbinarize函数是MATLAB图像处理工具箱中用于将灰度图像或体数据二值化的工具。它可以通过全局或自适应阈值方法将灰度图像转换为二…...

【NextJS】PostgreSQL 遇上 Prisma ORM

NextJS 数据库 之 遇上Prisma ORM 前言一、环境要求二、概念介绍1、Prisma Schema Language(PSL) 结构描述语言1.1 概念1.2 组成1.2.1 Data Source 数据源1.2.2 Generators 生成器1.2.3 Data Model Definition 数据模型定义字段(数据)类型和约束关系&…...

ASP.NET Core - 配置系统之配置提供程序

ASP.NET Core - 配置系统之配置提供程序 3. 配置提供程序3.1 文件配置提供程序3.1.1 JSON配置提供程序3.1.2 XML配置提供程序3.1.3 INI配置提供程序 3.2 环境变量配置提供程序3.3 命令行配置提供程序3.4 内存配置提供程序3.5 配置加载顺序 3.6 默认配置来源 3. 配置提供程序 前…...

从本地到云端:FastAPI服务器部署的5个必知要点(避坑指南)

从本地到云端:FastAPI服务器部署的5个必知要点(避坑指南) 当你兴奋地完成了一个FastAPI应用的开发,准备将它从本地环境迁移到云端服务器时,可能会遇到各种意想不到的问题。接口无法访问、性能突然下降、请求超时...这些…...

HTML5中SVG解析器原理及手动构建矢量字符串

SVG由浏览器XML解析器处理而非专用解析器,作为XML节点入DOM后由渲染引擎转为图形指令;手动构建需确保XML合法、坐标清晰、路径正确、字符转义。SVG在HTML5中不是通过传统“解析器”逐字符分析的,而是由浏览器内置的XML解析器处理——它把SVG标…...

EoH Platform:嵌入式多协议物联网边缘中间件

1. EoH Platform 概述:面向工业物联网的多协议嵌入式中间件平台 EoH Platform(Edge of Hub Platform)并非传统意义上的单功能驱动库或轻量级协议栈,而是一个专为资源受限嵌入式设备设计的 可裁剪、可扩展、协议无关的物联网边缘中…...

Prism框架实战:从零构建模块化WPF应用

1. 为什么选择Prism框架开发WPF应用 第一次接触WPF开发时,我像大多数新手一样直接从Visual Studio新建项目开始写代码。但随着功能增加,MainWindow.xaml.cs文件很快膨胀到上千行,各种控件事件和业务逻辑纠缠在一起。这时候我才意识到需要框架…...

NTC温度采样

该电路实现了一个带缓冲、滤波和电压钳位的NTC温度采样通道。其目的是安全、准确地将反映IGBT温度的NTC电阻值,转换为MCU可安全读取的模拟电压。前端是一个NTC和电阻组成的分压,将热信号变为阻值变化,阻值变化通过电压反应。这部分是RC低通滤…...

LaTeX格式设置避坑指南:5个新手最常踩的排版雷区

LaTeX格式设置避坑指南:5个新手最常踩的排版雷区 第一次用LaTeX写论文时,我盯着屏幕上歪七扭八的公式和怎么都对齐不了的标题,差点把键盘摔了。后来才知道,这些看似简单的格式问题,往往藏着LaTeX设计哲学里那些"反…...

繁华似锦初中生晚托省心

在绵阳高新区石桥铺,很多家长都面临着一个共同的问题:如何让孩子在放学后能够高效地完成作业,同时又不被手机和其他干扰因素影响。分小全智习室正是为了解决这一问题而设立的,提供专业的晚托服务,让家长更省心。专业师…...

记一次系统环境变量更改后在IDEA中无法读取新值的排查过程

问题背景本人在测试Protocol buffers序列化工具时,将项目设置为了 JDK 22 版本,如图所示:问题现象但在执行时,因为涉及到需要手动执行 mvn clean compile 命令,但是我的本地 JDK 环境是为了兼容之前项目而设置的1.8版本…...

FFmpeg swresample库进阶:除了基础转换,swr_alloc_set_opts2还能这样玩(含滤波器与精度设置)

FFmpeg swresample库进阶:解锁swr_alloc_set_opts2的隐藏潜力 在专业音频处理领域,采样率转换的质量直接影响最终输出的听感表现。许多开发者满足于基础参数配置,却忽略了FFmpeg的swresample库中那些能显著提升音质的"隐藏开关"。本…...

5分钟让Windows 11焕然一新:极速系统加速与性能优化终极指南

5分钟让Windows 11焕然一新:极速系统加速与性能优化终极指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter …...