MySQL运维篇(二)主从复制

一、概述

主从复制是指将主数据库的 DDL 和 DML 操作通过 二进制日志 传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。

MySQL 支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。

MySQL 复制的优点主要包含以下三个方面:
(1)主库出现问题,可以快速切换到从库提供服务。
(2)实现读写分离,降低主库的访问压力。
(3)可以在从库中执行备份,以避免备份期间影响主库服务。

二、原理

MySQL 主从复制的核心就是 二进制日志
在这里插入图片描述
从上图来看,复制分成三步:
(1)Master 主库在事务提交时,会把数据变更记录在二进制日志文件 Binlog 中。
(2)从库读取主库的二进制日志文件 Binlog ,写入到从库的中继日志 Relay Log。
(3)slave 重做中继日志中的事件,将改变反映它自己的数据。

三、搭建

1. 准备

在这里插入图片描述
准备好两台服务器之后,在上述的两台服务器中分别安装好 MySQL,并完成基础的初始化准备(安装、密码配置等操作)工作。 其中:
(1)192.168.200.200 作为主服务器 master
(2)192.168.200.201 作为从服务器 slave

2. 主库配置

(1)修改配置文件 /etc/my.cnf

#mysql 服务ID,保证整个集群环境中唯一,取值范围:1232-1,默认为1 
server-id=1 #是否只读,1 代表只读, 0 代表读写 
read-only=0 #忽略的数据, 指不需要同步的数据库 
#binlog-ignore-db=mysql #指定同步的数据库 
#binlog-do-db=db01 

(2)重启 MySQL 服务器

systemctl restart mysqld

(3)登录mysql,创建远程连接的账号,并授予主从复制权限

#创建itcast用户,并设置密码,该用户可在任意主机连接该MySQL服务
CREATE USER 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456';#为 'itcast'@'%' 用户分配主从复制权限
GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';

(4)通过指令,查看二进制日志坐标

show master status ;

在这里插入图片描述
字段含义说明:
1️⃣file : 从哪个日志文件开始推送日志文件
2️⃣position : 从哪个位置开始推送日志
3️⃣binlog_ignore_db : 指定不需要同步的数据库

3. 从库配置

(1)修改配置文件 /etc/my.cnf

#mysql 服务ID,保证整个集群环境中唯一,取值范围:12^32-1,和主库不一样即可 
server-id=2 #是否只读,1 代表只读, 0 代表读写 
read-only=1 

(2)重启 MySQL 服务器

systemctl restart mysqld

(3)登录mysql,设置主库配置

CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.200.200', SOURCE_USER='itcast', SOURCE_PASSWORD='Root@123456', SOURCE_LOG_FILE='binlog.000004', SOURCE_LOG_POS=663; 

上述是 8.0.23 中的语法。如果 mysql 是 8.0.23 之前的版本,执行如下 SQL:

CHANGE MASTER TO MASTER_HOST='192.168.200.200', MASTER_USER='itcast',MASTER_PASSWORD='Root@123456', MASTER_LOG_FILE='binlog.000004',MASTER_LOG_POS=663;

在这里插入图片描述

(4)开启同步操作

start replica ; #8.0.22之后start slave ; #8.0.22之前

(5)查看主从同步状态

show replica status ; #8.0.22之后show slave status ; #8.0.22之前

在这里插入图片描述

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

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

相关文章

3d渲染农场有什么好处?为什么选择渲染农场?

3D渲染农场是专门用于3D图形制作的计算机集群,通常用来帮助电影、动画或视觉效果的渲染,它有什么好处为什么要选择它呢?这次我们一起来看看吧! 1、时间效率 渲染农场能显著加快渲染速度,将原本需要数小时或数天的作业缩…

【车载HMI开发工具--EB GUIDE 与 Unity 合作提供一体化的沉浸式 HMI 设计开发工具链】【转载】

随着车载高性能计算平台的日益普及以及显示器尺寸和数量的不断增加,沉浸式车载人机交互界面(HMI)的需求也在持续增长。为了将实时 3D 技术带入车载 HMI 领域,Unity 与 Elektrobit (EB)展开了合作,EB 是推进 HMI 功能安…

【Linux系统编程】程序地址空间

进程地址空间 进程地址空间是指每个进程在计算机内存中所占用的地址空间。地址空间是指能被访问的内存地址范围,它由若干个连续的内存块组成。每个进程都有自己的地址空间,这意味着每个进程都有自己的内存地址范围,不会与其他进程冲突。进程地…

CTF伪随机数爆破

要了解伪随机数的爆破首先你的先知道什么是PHP种子, 借用在rand()函数中,我们可以通过设置随机数种子来影响随机数的生成。例如,在rand()函数中加入了随机数种子编码后,每次运行程序将会生成同样的随机整数序列。这个就是伪随机数…

Redis实战之-分布式锁-redission

一、分布式锁-redission功能介绍 基于setnx实现的分布式锁存在下面的问题: 重入问题:重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中,可重入锁的意义在于防止死锁,比如HashTable这样的代码中,他的方法都…

计算机网络编程

网络编程 文章目录 网络编程1 计算机网络1.1 什么是网络1.2 什么是计算机网络1.3 计算机网络发展的四个阶段 2 常用名词2.1 网络模型2.1.1 OSI模型2.1.2 TCP/IP模型 2.2 网络协议2.2.1 TCP/UDP2.2.2 IP 2.3 Port: 端口号 3 计算机网络编程3.1 InetAddress类3.2 基于TCP的Socket…

【C++】std::string 转换成非const类型 char* 的三种方法记录

std::string 有两个方法:data() 和 c_str(),都是返回该字符串的const char类型,那如何转换成非const的char呢? 下面展示三种方法: 强转:char* char_test (char*)test.c_str();使用string的地址&#xff…

Kubernetes的minikube

文章目录 环境概述准备安装启动和集群交互dashboard创建deployment创建service启用addon清理参考 环境 RHEL 9.3Docker Community 24.0.7miniKube v1.32.0 概述 minikube可以快速的在macOS、Linux和Windows上搭建本地的Kubernetes集群,帮助Kubernetes小白快速上手…

cv 不能正常读取中文路径

之前一直以为是PyQT的getOpenFileNames方法不能读取中文路径的。多次尝试后发现不是,是OpenCV的问题。 self.selected_imgPaths, _ QtWidgets.QFileDialog.getOpenFileNames(self, "打开图片", "./pending_images", "*.jpg;;*.JPG;;*.png…

【SQL】SQL语法小结

相关资料 参考链接1:SQL 语法(超级详细) 参考链接2:史上超强最常用SQL语句大全 SQL练习网站:CSDN、牛客、LeetCode、LintCode SQL相关视频: 推荐书籍: 文章目录 数据分析对SQL的要求SQL语法简介…

一文吃透计算机组成原理面试八股文

第一章 计算机系统概述 “较简单,不做过多赘述,后面会详细学到” 第一节 计算机系统层次结构 1.计算机系统的基本组成:硬件软件 2.计算机硬件的基本组成:运算器存储器控制器输入设备输出设备 3.系统软件和应用软件 系统软件…

JIRA工作流设置解决弹框

1、2、、找到要配置工作流,编辑状态下,选择要配置的状态 2、点击“编辑”按钮 3、配置转为视图 4、更新后,发布工作流,完成。