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

MySQL8.3.0 主从复制方案(master/slave)

一 、什么是MySQL主从

MySQL主从(Master-Slave)复制是一种数据复制机制,用于将一个MySQL数据库服务器(主服务器)的数据复制到其他一个或多个MySQL数据库服务器(从服务器)。这种复制机制可以提供数据冗余、增加读取性能、实现高可用性、灾难恢复和数据分析等功能。

二、MySQL主从的作用

  • 数据冗余和备份
  • 分摊读取负载
  • 提供高可用性
  • 灾难恢复和故障转移
  • 数据分析和报表生成

三、MySQL 8.3.0 过时的并需要移除的 replication 选项和变量。

注意MySQL 8.3.0 版本中很多参数已经移除不在使用,千万注意:

许多与 MySQL replication相关的选项和变量在以前的 MySQL 版本中已被弃用,并已从 MySQL 8.3 中删除。现在尝试使用其中任何一个都会导致服务器引发语法错误。这些选项和变量列于此处:

  • slave-rows-search-algorithms:复制应用程序在应用更新或删除时用于查找表行的算法现在始终为HASH_SCAN,INDEX_SCAN,并且用户不再可配置。
  • log_bin_use_v1_events:这允许运行 MySQL 5.7 及更高版本的源服务器复制到不再支持或维护的早期版本的 MySQL。
  • relay-log-info-file、 --relay-log-info-repository、 --master-info-file、 --master-info-repository:这些已经被crash-safe 表取代,并且不再受支持。
  • transaction_write_set_extraction
  • group_replication_ip_whitelist: group_replication_ip_allow list 代替使用。
  • group_replication_primary_member: 不再需要; 通过查询 Performance Schema 中replication_group_members表的MEMBER_ROLE列。
  • –skip-host-cache: 该选项已被删除;改为启动服务器 --host-cache-size=0。
  • –innodb和–skip-innodb: 这些选项已被删除。存储 InnoDB引擎始终处于启用状态,并且无法禁用它。
  • –character-set-client-handshake和–old-style-user-limits: 这些选项以前用于与非常旧的 MySQL 版本兼容,这些版本不再受支持或维护,因此不再有任何有用的用途。
  • **过时的 CMake 选项 ** 以下用于使用 CMake 编译服务器的选项已过时并已被删除:
    • USE_LD_LLD: 使用WITH_LD=lld代替。
    • WITH_BOOST、 DOWNLOAD_BOOST、 DOWNLOAD_BOOST_TIMEOUT:不再需要这些选项; MySQL 现在在从源代码编译时包含并使用捆绑版本的 Boost。
  • GTID-based replication 和 IGNORE_SERVER_IDS: 当使用全局事务标识符 (GTID) 进行复制时,已应用的事务将被自动忽略。这意味着IGNORE_SERVER_IDS与 GTID 模式不兼容。如果 gtid_mode是 ON,CHANGE REPLICATION SOURCE TO则非空 IGNORE_SERVER_IDS列表将被拒绝并出现错误。同样,如果使用要忽略的服务器 ID 列表创建任何现有复制通道, SET gtid_mode=ON也会被拒绝。在开始基于 GTID 的复制之前,检查并清除所涉及服务器上任何被忽略的服务器 ID 列表;您可以通过检查SHOW REPLICA STATUS的输出来做到这一点 。在这种情况下,您可以通过发出CHANGE REPLICATION SOURCE TO 空列表来清除服务器 ID 列表 ,如下所示:
CHANGE REPLICATION SOURCE TO IGNORE_SERVER_IDS = ();

四、手动搭建 MySQL master/slave 主从复制集群

本文采用Docker 容器的方式搭建集群。容器已经完整的封装好主从集群的相关环境变量信息,只需要做相关的初始化配置即可快速完整主从复制搭建。
获取MySQL Docker

docker pull registry.cn-hangzhou.aliyuncs.com/qingcloudtech/mysql:8.3.0

与主从复制相关的环境变量:

  • MYSQL_REPLICATION_MODE:复制模式。可能的值master/ slave。没有默认值。
  • MYSQL_REPLICATION_USER:首次运行时在master服务器上创建的REPLICATION用户。没有默认值。
  • MYSQL_REPLICATION_PASSWORD:REPLICATION用户密码。没有默认值。
  • MYSQL_MASTER_HOST:master主机名/IP(slave节点参数)。没有默认值。
  • MYSQL_MASTER_PORT_NUMBER:master服务器端口(slave节点参数)。默认为3306.
  • MYSQL_MASTER_ROOT_USER:master上有权访问MYSQL_DATABASE(slave节点参数)的用户。默认为root
  • MYSQL_MASTER_ROOT_PASSWORD:master上有权访问MYSQL_DATABASE(slave节点参数)的用户的密码。没有默认值。
  • MYSQL_MASTER_DELAY:数据库复制延迟(slave节点参数)。默认为0.

在复制集群中,您可以拥有一个master服务器和零个或多个slave服务器。启用复制后,master节点处于读写模式,而slave节点处于只读模式。为了获得最佳性能,建议限制对从属设备的读取。

第 1 步:创建复制主服务器

第一步是启动MySQL master。

docker run --name mysql-master \-e MYSQL_ROOT_PASSWORD=master_root_password \-e MYSQL_REPLICATION_MODE=master \-e MYSQL_REPLICATION_USER=my_repl_user \-e MYSQL_REPLICATION_PASSWORD=my_repl_password \-e MYSQL_USER=my_user \-e MYSQL_PASSWORD=my_password \-e MYSQL_DATABASE=my_database \registry.cn-hangzhou.aliyuncs.com/qingcloudtech/mysql:8.3.0

在上面的命令中,容器被配置为master使用MYSQL_REPLICATION_MODE参数。MYSQL_REPLICATION_USER使用和参数指定复制用户MYSQL_REPLICATION_PASSWORD。

第2步:创建复制从站

接下来我们启动一个 MySQL 从属容器。

docker run --name mysql-slave --link mysql-master:master \-e MYSQL_REPLICATION_MODE=slave \-e MYSQL_REPLICATION_USER=my_repl_user \-e MYSQL_REPLICATION_PASSWORD=my_repl_password \-e MYSQL_MASTER_HOST=mysql-master \-e MYSQL_MASTER_ROOT_PASSWORD=master_root_password \registry.cn-hangzhou.aliyuncs.com/qingcloudtech/mysql:8.3.0

在上面的命令中,容器被配置为slave, 使用MYSQL_REPLICATION_MODE参数。slave节点使用MYSQL_MASTER_HOST、MYSQL_MASTER_ROOT_USER和参数MYSQL_MASTER_ROOT_PASSWORD连接到master。它还会转储主服务器中的现有数据。replication user使用MYSQL_REPLICATION_USER和参数MYSQL_REPLICATION_PASSWORD指定,并且应与master节点上指定的相同。
现在已经启动并运行一个两节点 MySQL 主/从复制集群。还可以通过添加/删除从属服务器来扩展集群,而不会导致任何停机。
通过 Docker Compose,可以使用以下命令设置主/从复制:

version: '3.9'services:mysql-master:image: 'registry.cn-hangzhou.aliyuncs.com/qingcloudtech/mysql:8.3.0'ports:- '3306'volumes:- /path/to/mysql-persistence:/bitnami/mysql/dataenvironment:- MYSQL_REPLICATION_MODE=master- MYSQL_REPLICATION_USER=repl_user- MYSQL_REPLICATION_PASSWORD=repl_password- MYSQL_ROOT_PASSWORD=master_root_password- MYSQL_USER=my_user- MYSQL_PASSWORD=my_password- MYSQL_DATABASE=my_databasemysql-slave:image: 'registry.cn-hangzhou.aliyuncs.com/qingcloudtech/mysql:8.3.0'ports:- '3306'depends_on:- mysql-masterenvironment:- MYSQL_REPLICATION_MODE=slave- MYSQL_REPLICATION_USER=repl_user- MYSQL_REPLICATION_PASSWORD=repl_password- MYSQL_MASTER_HOST=mysql-master- MYSQL_MASTER_PORT_NUMBER=3306- MYSQL_MASTER_ROOT_PASSWORD=master_root_password

使用以下方法扩展slave数量:

docker-compose up --detach --scale mysql-master=1 --scale mysql-slave=3

上面的命令将 Slave 的数量增加到3,您可以用同样的方式缩小规模。

注意:您不应增加/减少master节点的数量。始终只有一个主节点运行。

五、QingHub Studio快熟一键搭建 MySQL Master/Slave 主从复制

  • 进入QingHub Studio 广场,-> 标准应用 > 查找【MySQL8.3.0 主从复制方案】
    image.png
  • 安装订阅该服务
    image.png
  • 进入QingHub Studio 部署设计器-新建部署
    image.png
    image.png
  • 直接把刚刚安装的MySQL服务拖到设计器中。
    image.png
    image.png
  • 选择部署目标服务器,一键部署(前提是该服务已经按装好agent)
    image.png
  • 部署成功后启动服务,并检查状态,完成服务部署。实时监控服务状态
    image.png
后续

在完成MySQL 主从部署之后,可以基于此服务,继续部署其他应用节点,直接拖拽到该设计器即可。QingHub Studio 部署设计器完全做到:
可视化,可操作,可修改,可监控,可执行

Qinghub Studio 在线体验

相关文章:

MySQL8.3.0 主从复制方案(master/slave)

一 、什么是MySQL主从 MySQL主从(Master-Slave)复制是一种数据复制机制,用于将一个MySQL数据库服务器(主服务器)的数据复制到其他一个或多个MySQL数据库服务器(从服务器)。这种复制机制可以提供…...

大数据相关组件安装及使用

自学大数据相关组件 持续更新中。。。 一、linux安装docker 1、更新yum sudo yum update2、卸载docker旧版本 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine3、…...

【攻防世界】web2(逆向解密)

进入题目环境&#xff0c;查看页面信息&#xff1a; <?php $miwen"a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";function encode($str){$_ostrrev($str);// echo $_o;for($_00;$_0<strlen($_o);$_0){$_csubstr($_o,$_0,1);$__ord($_c)1;…...

Linux文件查找命令详解——以CentOS为例

Linux文件查找命令详解——以CentOS为例 在Linux系统中&#xff0c;文件查找是一项非常重要的任务。无论是系统管理员还是普通用户&#xff0c;都需要掌握一些基本的文件查找命令。本文将详细介绍Linux中常用的文件查找命令&#xff0c;并以CentOS为例&#xff0c;展示如何使用…...

【JavaEE】浅谈线程(一)

线程 前言线程的由来线程是什么线程的属性线程更高效的原因举个例子&#xff08;线程便利性的体现&#xff09; 多线程代码线程并发执行的代码jconsole(观测多线程) 线程的调度问题创建线程的几种方法1&#xff09;通过继承Thread 重写run2&#xff09;使用Runnable接口 重写ru…...

深度解析SPARK的基本概念

关联阅读博客文章&#xff1a; 深入理解MapReduce&#xff1a;从Map到Reduce的工作原理解析 引言&#xff1a; 在当今大数据时代&#xff0c;数据处理和分析成为了企业发展的重要驱动力。Apache Spark作为一个快速、通用的大数据处理引擎&#xff0c;受到了广泛的关注和应用。…...

FreeGPT3.5 开源软件

GPT-3.5不需要付费&#xff0c;也不需要注册用户&#xff0c;可以直接使用了&#xff0c;官方彻底开放了API接口。 该API政策一放开&#xff0c;GitHub很快就已经出现了一个开源项目FreeGPT35&#xff0c;可以自动生成key调用GPT3.5的API接口&#xff0c;再也用不着注册账号和申…...

AI绘本生成解决方案,快速生成高质量的AI绘本视频

美摄科技凭借其深厚的技术积累和前瞻性的市场洞察力&#xff0c;近日推出了一款面向企业的AI绘本生成解决方案&#xff0c;旨在通过智能化、自动化的方式&#xff0c;帮助企业快速将文字内容转化为生动有趣的绘本视频&#xff0c;从而提升内容传播效率&#xff0c;增强品牌影响…...

RabbitMQ3.13.x之九_Docker中安装RabbitMQ

RabbitMQ3.13.x之_Docker中安装RabbitMQ 文章目录 RabbitMQ3.13.x之_Docker中安装RabbitMQ1. 官网2. 安装1 .拉取镜像2. 运行容器 3. 访问 1. 官网 rabbitmq - Official Image | Docker Hub 2. 安装 1 .拉取镜像 docker pull rabbitmq:3.13.0-management2. 运行容器 # lates…...

【操作系统】STM32-操作系统——持续更新

【操作系统】STM32-操作系统——持续更新 文章目录 前言一、ucosii二、freertos1.介绍2.移植 总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、ucosii UCOSII移植到STM32F103C8T6上之移植记录&#xff08;一&#xff09; UCOSII移植到ST…...

Redux Toolkit+TypeScript最佳实践

Redux-Toolkit是为了简化使用Redux繁琐的步骤&#xff0c;可以j降低使用useReducer与useContext管理状态的频率&#xff0c;而且起到项目中状态管理规范和约束化的效果。 阅读本文需要的前置知识&#xff1a;React、Redux、Typescript、Redux hooks。 Redux-Toolkit使用步骤 …...

假期别闲着:REST API实战演练之创建Rest API

1、创建实体类&#xff0c;模拟实体对象 创建一个类&#xff0c;模拟数据数据库来存储数据&#xff0c;这个类就叫Person。 其代码如下&#xff1a; package com.restful;public class Person {private String name;private String about;private int birthYear;public Perso…...

C++模仿qq界面

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//设置窗口的大小this->resize(645,497);//设置窗口名字this->setWindowTitle("QQ");//设置窗口图标this->setWindowIcon(QIcon("C:\\zhouzhouMyfile\\qt_proj…...

3D模型在线轻量化工具

在计算机图形学领域&#xff0c;3D模型简化工具是一种强大的工具&#xff0c;用于减少模型的面数&#xff0c;以提高模型在渲染和处理过程中的性能。本文将全面介绍为何需要简化模型、简化的方法、常见的简化算法以及一款三维模型优化产品 的使用方法&#xff0c;帮助读者更好地…...

去中心化社交媒体:分析 Facebook 在区块链平台上的角色

在当今数字时代&#xff0c;社交媒体已经成为人们日常生活中不可或缺的一部分。然而&#xff0c;随着人们对数据隐私和信息控制的关注不断增加&#xff0c;传统的中心化社交媒体平台也面临着越来越多的质疑和挑战。为了应对这些挑战&#xff0c;越来越多的人开始探索去中心化社…...

实现多租户JAVA支付(微信拉起支付):一个简单而强大的解决方案

简介&#xff1a; 本篇文章为多租户场景 在当今数字经济时代&#xff0c;许多企业都面临着处理多租户支付的挑战。多租户系统是指一种架构&#xff0c;其中单个实例的软件服务多个租户&#xff0c;每个租户的数据通常被隔离&#xff0c;以确保安全性和数据隐私。而在这种环境…...

万字长文:FineBI面试题及参考答案详解

1:FineBI的基本概念是什么? FineBI是帆软软件有限公司推出的一款商业智能产品。它的核心功能是通过分析企业已有的信息化数据,帮助企业发现并解决存在的问题,预测模拟企业将来的发展,并协助企业及时调整策略做出更好的决策,增强企业的可持续竞争性。 2:描述FineBI的使…...

Python爬虫:为什么你爬取不到网页数据

目录 前言 一、网络请求被拒绝 二、数据是通过JavaScript加载的 三、需要进行登录 四、网站反爬虫策略 五、网站结构变更 总结 前言 作为一名开发者&#xff0c;使用Python编写爬虫程序是一项常见的任务。爬虫程序的目的是收集互联网上的数据&#xff0c;并将其保存或使…...

NLP在搜索召回领域中的应用场景

自然语言处理&#xff08;NLP&#xff09;在搜索召回领域中的应用场景非常广泛&#xff0c;它通过理解和分析人类语言&#xff0c;提高了信息检索的准确性和效率。以下是一些具体的应用场景&#xff1a; 1. 搜索引擎优化 NLP技术可以用于优化搜索引擎的查询处理&#xff0c;通…...

2. Django配置信息

第2章 Django配置信息 Django的配置文件settings.py用于配置整个网站的环境和功能, 核心配置必须有项目路径, 密钥配置, 域名访问权限, App列表, 中间件, 资源文件, 模板配置, 数据库的连接方式.* 项目运行时, 如果修改代码, 项目会自动检测发现改动后会重新运行, 除非报错否…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...