【网管日记】MySQL主从复制

2023-05-16

MySQL主从复制

基本介绍

MySQL 主从复制是一个异步的复制过程,底层是基于 Mysql 数据库自带的 二进制日志 功能。

一台或多台 MySQL 数据库(slave,即 从库 )从另一台 MySQL 数据库( master,即 主库 )进行日志的复制,然后再解析日志并应用到自身,最终实现 从库 的数据和 主库 的数据保持一致。

MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。

二进制日志:

二进制日志(BINLOG)记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但是不包括数据查询语句。此日志对于灾难时的数据恢复起着极其重要的作用,MySQL的主从复制,就是通过该 binlog 实现的。默认 MySQL 是未开启该日志的。

image-20221213220430620

MySQL复制过程分成三步:

  1. MySQL master 将数据变更写入二进制日志(binary log)
  2. slave 将 master 的 binary log 拷贝到它的中继日志(relay log)
  3. slave重做中继日志中的事件,将数据变更反映它自己的数据

配置步骤

主库配置

修改配置文件 /etc/my.conf,在最下面增加配置:

log-bin=mysql-bin   #[必须]启用二进制日志
server-id=200       #[必须]服务器唯一ID(唯一即可)

然后重启 mysql

systemctl restart mysqld

然后登入到 mysql 中,执行:

//mysql8授权用户需要先创建,创建和授权同一条语句的话会报错,mysql8默认使用的是sha256_password我这里是修改了加密插件为mysql_native_password
CREATE USER 'songjian'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456';
//再授权
GRANT ALL PRIVILEGES ON *.* TO 'songjian'@'%'WITH GRANT OPTION;
//刷新
flush privileges;

注:上面 SQL 的作用是创建一个用户 songjian ,密码为 Root@123456 ,并且给 songjian 用户授予R EPLICATION SLAVE 权限。常用于建立复制时所需要用到的用户权限,也就是 slave 必须被 master 授权具有该权限的用户,才能通过该用户复制。

查看一下主库的状态:

show master status;

image-20221214215007380

从库配置

修改Mysql数据库的配置文件/etc/my.cnf,在后面追加:

server-id=201 	#[必须]服务器唯一ID

然后,重启mysql服务

systemctl restart mysqld

登入mysql,执行下面sql:

//执行前先停下slave
stop slave;

//这是从库和主库连接的关键一步,host是主库的ip,user是前面创建的slave用户,file和pos是主库show master status的信息
change master to
master_host='192.168.223.130',master_user='songjian',master_password='Root@123456',
master_log_file='mysql-bin.000001',master_log_pos=1345;

//执行后启动slave
start slave;

执行后,来看看从库状态:

show slave status;

image-20221214222002093

重点看上图中的 slave_IO_RunningSlaving_SQL_Running 是否正常运行(yes)

如果主从数据库同步不了,就从库执行下 show slave status\G;

如果是 Slave_IO_Running: No,那么,很可能是主从库 server-id 重复了,或者是防火墙端口没开通;
如果是 Slave_SQL_Running: No,那么我们可以通过跳过错误和手动同步来解决。

Bug解决

主从复制的Bug主要是两个,一个是 Slave_SQL_Running:no,另一个是 slave_io_running:no

Slave_SQL_Running:no

执行:

stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
start slave;
show slave status\G

image-20221215093823978

即可修复。

Slave_IO_Running:no

查看主服务器:

show master status\G

查看从服务器:

show slave status\G

如果发现对应的二进制日志文件不同,则修改:

slave stop;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000026', MASTER_LOG_POS=0;
slave start;                  
show slave status\G

到此问题就解决了!

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

【网管日记】MySQL主从复制 的相关文章

  • 自动化控制行业常见面试问题分析

    一 系统建模 xff0c 二 经典控制与现代控制 xff0c 三 自动检测 xff0c 四 过程控制 xff0c 五 计算机控制 xff0c 六 微机原理 xff0c 七 电子技术综合 xff0c 八 电机控制 xff0c 九 专业英语名词
  • glibc 下载及编译

    glibc下载站点 http ftp gnu org pub gnu glibc 下载点 http www gnu org software libc bugs html 官网 uclibc下载站点 https downloads ucli
  • 树莓派镜像制作

    前言 本文主要讲诉如何制作一个树莓派的启动镜像 xff08 本人使用的是4b 43 xff09 镜像下载 镜像下载64bit xz文件大小在756M xff0c 解压后镜像3 95个G 上面的镜像下载比较慢 xff0c 可以使用国内的镜像源
  • 推荐算法评价指标(ACC、查全率、查准率、F1-Score、ROC、AUC,P-R)

    文章目录 混淆矩阵二级指标三级指标F1 ScoreROC AUC PR曲线 推荐系统的评价指标很多 xff0c 今天介绍 xff1a 准确率 ACC 查准率 P精确率 查全率 R召回率 F1 score AUC值 xff0c ROC曲线 P
  • 规划xr871实现儿童故事机的基本功能

    原创 xff1a http blog csdn net kylin fire zeng xff0c 欢迎转载分享 xff0c 共同进步 xff0c 但请注明出处啊 xff0c 尊重他人成果
  • Maven项目中pom文件的parent标签报错如何解决 (eclipse中创建springboot项目时,pom中的parent标签报错)

    原因 xff1a maven的settings文件不能从连网下载依赖jar包 解决办法 xff1a 在Maven修改settings文件内容 etting配置镜像仓库 span class token tag span class toke
  • Android中Paint字体的灵活使用

    在Android开发中 xff0c Paint是一个非常重要的绘图工具 xff0c 可以用于在控制台应用程序或Java GUI应用程序中绘制各种形状和图案 其中 xff0c Paint setText 方法是用于设置Paint绘制的文本内容
  • 像素类型

    不同的图像有不同的像素类型 xff0c 不过对于不同的像素类型 xff0c 需要在模板参数传入不同的值 首先像素的数据类型包括CV 32U xff0c CV 32S xff0c CV 32F xff0c CV 8U xff0c CV 8UC
  • 20220806 美团笔试五道编程题(附AK题解)

    恭喜发现宝藏 xff01 微信搜索公众号 TechGuide 回复公司名 xff0c 解锁更多新鲜好文和互联网大厂的笔经面经 作者 64 TechGuide 全网同名 点赞再看 xff0c 养成习惯 xff0c 您动动手指对原创作者意义非凡
  • Ubuntu入门(二) 用户权限 文件权限 磁盘管理 连接文件

    目录 1 用户权限管理1 1 用户系统1 2 创建用户和用户组命令1 3 权限管理1 4 权限管理命令 2 磁盘管理2 1 磁盘管理基本概念2 2 磁盘管理命令 3 连接文件3 1 硬连接3 2 符号连接 xff08 软连接 xff09 1
  • git clone指定分支代码

    全克隆 xff1a span class token function git span clone span class token operator lt span url span class token operator gt sp
  • Kali Linux 镜像 各个版本之间的区别

    按处理器架构来划分的话 xff0c 有 64 bit 32 bit armhf armel等版本 加light的是轻量版 e17 Mate LXDE等是不同的桌面环境 Kali Linux 2016 2 支持GNOME KDE Mate L
  • ubuntu16.04下px4环境搭建与固件编译

    px4官网提供了一个批处理方式搭建px4开发环境 xff0c 十分好用 xff0c 按照官网步骤 1 sudo usermod span class hljs a span G dialout span class hljs variabl
  • Top-down与Bottom-up

    简析 顾名思义 xff0c top down是由上至下 xff0c 而bottom up由下至上的意思 其实 xff0c 就我对本行业的理解 xff0c top 61 目的 objective xff0c bottom 61 方法细节 ac
  • MATLAB GPU加速

    以前使用matlab 的时候 xff0c 很多人都用过里面的并行工具箱 xff0c 用的最多的应该就是parfor 实际上 xff0c matlab里面已经有不少工具箱里面都有了支持GPU加速的函数 使用matlab 43 GPU加速的前提
  • 论如何最低成本进入 智能家居、人工智能、安卓主板 的领域

    原创 xff1a http blog csdn net kylin fire zeng xff0c 欢迎转载分享 xff0c 共同进步 xff0c 但请注明出处啊 xff0c 尊重他人成果
  • 为什么说枚举单例模式是最安全的?

    单例模式有很多种 xff0c 如 xff1a 饿汉式 线程安全 xff0c 但是浪费资源 xff1b 懒汉式 懒汉式又分为 xff0c 同步锁单例模式 性能较差 xff1b 双重判断同步锁单例模式 静态内部类单例模式 以上单例模式大多数都是
  • Qt - 信号与槽的连接方式

    信号与槽的连接方式主要有以下5种方式 xff1a 先看代码 xff1a ifndef MYOBJECT H define MYOBJECT H include lt QObject gt class MyObject public QObj
  • vslam流程框架介绍

    平常扫地机产品上经常听说使用了vslam技术 xff0c 那么这个vslam到底是什么呢 xff0c 我们下面一起来看看 vslam是什么 xff1f VSLAM 即 Visual Simultaneous Localization and
  • linux出现oom分析流程

    背景 linux内核有个机制叫OOM killer Out Of Memory killer xff0c 当系统需要申请内存却申请不到时 xff0c OOM killer会检查当前进程中占用内存最大者 xff0c 将其杀掉 xff0c 腾出

随机推荐

  • 浅入浅出linux中断子系统

    浅入浅出linux中断子系统 xff0c 如需深入 xff0c 直接跳转重要参考章节 什么是中断 xff1f 当CPU被某些信号触发 xff0c CPU暂停当前工作 xff0c 转而处理信号的事件 xff0c 简单的称它为中断 xff0c
  • ROS2交叉编译操作

    ROS2移植过程 在移植ROS2之前 先确认需要移植的版本以及其对应的依赖 这些信息可以在 ROS 2 Releases and Target Platforms 中有介绍 可依据自身需要使用的平台 参考该链接进行选择 下面以ROS2 Hu
  • gstreamer学习笔记---pad定义、连接、流动

    pad相当于element的接口 xff0c 各个element就是通过pad连接进行传输数据 xff0c 同时pad会通过caps限制特定的数据类型通过 xff0c 只有当两个pad的caps数据类型一致时才可以建立连接 那么pad在el
  • gstreamer学习笔记---gst-omx

    一 openMAX理解1 gst omx是基于openMAX开发的插件 xff0c 所以在介绍gst omx之前 xff0c 我们先了解一下openMAX openMAX xff1a open media acceleration xff0
  • csi mipi信号解析

    1 传输模式 LP xff08 Low Power xff09 模式 xff1a 用于传输控制信号 xff0c 最高速率 10 MHz HS xff08 High Speed xff09 模式 xff1a 用于高速传输数据 xff0c 速率
  • 程序调试方法

    记录初衷 xff1a 遇到问题 xff0c 按照一套方法 xff0c 把问题化解 xff0c 逐渐的内化为心法 xff0c 形成经验 xff0c 这就是成长的过程 就好比吃的猪肉 xff0c 经过消化 分解 吸收后变成了自己肉 程序分为三种
  • 博客八:基于xr871实现wifi音响产品

    原创 xff1a http blog csdn net kylin fire zeng xff0c 欢迎转载分享 xff0c 共同进步 xff0c 但请注明出处啊 xff0c 尊重他人成果
  • 用 Docker 部署一个 Python 应用

    Flask项目 这里为了演示的方便 xff0c 我们就写一个简单的Flask项目 xff0c 代码如下 from flask import Flask app 61 Flask name 64 app route 39 39 def ind
  • Realsence D455标定并运行Vins-Fusion

    文章目录 一 双目相机标定1 标定板准备1 1 打印标定板1 2 标定板信息原始pdf的格子参数是 xff1a 调整后的格子参数是 xff1a 2 左右目相机数据准备2 1 修改rs camera launch内容2 2 关闭结构光2 3
  • 【Linux命令】文件和目录权限

    Linux命令 文件和目录权限 权限查看 众所周知 xff0c 可以使用 ls l 来查看文件和目录的详细信息 xff0c 那么输出的东西是什么呢 xff1f 我们先来看 文件类型 xff1a xff1a 普通文件 xff1b d xff1
  • 【设计模式】单例模式

    设计模式 单例模式 1 为什么要用单例 xff1f 单例设计模式 xff08 Singleton Design Pattern xff09 xff1a 一个类只允许创建一个对象 xff08 或实例 xff09 1 1 处理资源访问冲突 例如
  • 【JAVA】基础语法

    JAVA 基础语法 JAVA面向对象三大特征 封装 继承 多态 1 类型转换 1 1 自动类型转换 自动类型转换 类型范围小的变量 可以直接赋值给类型范围大的变量 1 2 表达式的自动类型转换 在表达式中 小范围类型的变量会自动转换成当前较
  • 【Java技巧】如何在HashMap中插入重复的key?

    Java技巧 如何在HashMap中插入重复的key xff1f 问题引出 我们都知道 xff0c Map 的 key 需要保证唯一性 插入重复的 key 会被最后插入的 key 所覆盖 xff0c 如 xff1a span class t
  • ArrayList源码分析

    ArrayList源码分析 注意 本笔记分析对象为 Java8 版本 随版本不同 源码会发生变化 1 ArrayList类图与简介 ArrayList是一个 非线程安全 基于数组实现的一个动态数组 可以看到 它的顶层接口是 Collecti
  • Vector源码分析

    Vector源码分析 1 Vector基本介绍与类图 Vector 类实现了一个动态数组 和 ArrayList 很相似 但是两者是不同的 Vector 是同步访问的 Vector 包含了许多传统的方法 这些方法不属于集合框架 Vector
  • LinkedList源码分析

    LinkedList源码分析 注意 本笔记分析对象为 Java8 版本 随版本不同 源码会发生变化 基本介绍与类图 LinkedList 同时实现了 List 接口和 Deque 对口 也就是收它既可以看作一个顺序容器 又可以看作一个队列
  • 【网管日记】Linux防火墙操作

    网管日记 Linux防火墙操作 记录一下常用的Linux防火墙操作 xff1a 查看防火墙状态 systemctl status firewalld 或 firewall cmd state暂时关闭防火墙 systemctl stop fi
  • (毕业设计资料)基于51单片机的智能窗控制系统设计

    实现参考功能 1 可实时显示年月日 时分秒 光照强度和控制模式 xff1b 2 可通过手动控制窗帘的开启和关闭 xff1b 3 可通过设置开启和关闭时间来控制窗帘 xff1b 4 可通过检测光照强度的亮暗来控制窗帘 xff1b 5 使用步进
  • 网络操作系统 第十二章 FTP服务器的安装与配置

    习题 1 简述FTP的连接模式 FTP的连接模式有PORT和PASV两种 xff0c 其中PORT模式是主动模式 xff0c PASV是被动模式 xff0c 这里所说的主动和被动都是相对于服务器而言的 如果是主动模式 xff0c 数据端口为
  • 【网管日记】MySQL主从复制

    MySQL主从复制 基本介绍 MySQL 主从复制是一个异步的复制过程 xff0c 底层是基于 Mysql 数据库自带的 二进制日志 功能 一台或多台 MySQL 数据库 xff08 slave xff0c 即 从库 xff09 从另一台