我们来学mysql -- mysql8.4主从

article/2025/6/18 10:26:00

mysql8.4主从

  • 8.4安装
  • 主从原理
    • my.cnf
    • 启动
    • 创建复制用户
    • my.cnf
    • 启动
    • 锁库&迁移数据
    • 连接主&开启复制
    • 检查复制

8.4安装

  • 参考保姆级安装教程传送门

主从原理

在这里插入图片描述

  • 从库准备
    • 使用 CHANGE MASTER TO 配置主库信息并写入 master.info 文件。
    • 执行 START SLAVE 启动从库,启动 I/O 线程和 SQL 线程。
  • 同步过程
    • 从库的 I/O 线程读取 master.info 文件,连接到主库
    • 主库生成 binlog dump 线程响应从库连接请求
    • 主库生成新的 binlog 日志,binlog dump 线程将其发送给从库。
    • 从库的 I/O 线程将日志存储在 TCP/IP 缓存中,并向主库发送 ACK 确认。
    • I/O 线程更新 master.info 文件中的 binlog 文件名和位置。
    • I/O 线程将日志写入 relay-log 文件中。
    • 从库的 SQL 线程从 relay-log 文件读取并回放日志。
    • 回放完成后,SQL 线程更新 relay-log.info 文件中的位置。

my.cnf

  • 主要参数说明

    server-id = 1 # 服务器的唯一标识符,用于区分集群或复制环境中的不同服务器
    log_bin = mysql-bin # (1)启用二进制日志功能 (2)指定二进制日志文件的基名
    binlog-do-db = test-db #指定需要记录二进制日志的数据库
    binlog_format = row # 指定二进制日志的格式为行格式(ROW)
    sync_binlog = 1 # 控制二进制日志同步到磁盘的频率,为 1 时,每次提交事务后,二进制日志都会同步到磁盘
    binlog_cache_size = 128M
    max_binlog_cache_size = 512M
    max_binlog_size = 256M # 单个二进制日志超过 256MB,切换到新的二进制日志继续记录
    log_output = FILE # 日志的输出为文件,设置为 “TABLE”,可以存储在数据库表中,通过 SQL可进行查询和分析
    binlog_checksum = none
    
    参数说明
    server-id = 1服务器的唯一标识符,用于区分集群或复制环境中的不同服务器
    log_bin = mysql-bin(1)启用二进制日志功能 (2)指定二进制日志文件的基名
    binlog-do-db = test-db指定需要记录二进制日志的数据库
    binlog_format = row指定二进制日志的格式为行格式(ROW)
    sync_binlog = 1控制二进制日志同步到磁盘的频率,为 1 时,每次提交事务后,二进制日志都会同步到磁盘
    binlog_cache_size = 128Mmax_binlog_cache_size = 512M
    max_binlog_size = 256M单个二进制日志超过 256MB,切换到新的二进制日志继续记录
    log_output = FILE日志的输出为文件,设置为 “TABLE”,可以存储在数据库表中,通过 SQL可进行查询和分析
    binlog_checksum = none

启动

  • 参考保姆级安装教程 中safe启动

创建复制用户

  • 创建用户 CREATE USER ‘copyer’@‘%’ IDENTIFIED BY ‘copyer@111’;
  • 查看权限 SELECT * FROM information_schema.USER_PRIVILEGES WHERE GRANTEE = “‘copyer’@‘%’”;
  • 授权复制 GRANT REPLICATION SLAVE ON . TO ‘copyer’@‘%’ WITH GRANT OPTION;
  • 查看用户 SELECT host, user FROM mysql.user ;

my.cnf

  • 主要参数说明
    relay_log = mysql-relay-bin
    relay_log_purge = on
    relay_log_recovery = on
    max_relay_log_size = 1G
    server-id = 2
    log_bin = mysql-slave-bin
    binlog-do-db = test-dev
    
    参数说明
    relay_log = mysql-relay-bin主库的(binlog)被从库的I/O线程读取,写入到从库的中继日志
    relay_log_purge = on从库用完中继日志中的更新操作后,中继日志会被自动删除
    relay_log_recovery = on中继日志完整且主库二进制日志存在:从库会根据记录的主库二进制日志位置,从中断处继续复制和应用更新,数据保持一致,不会丢失
    主库二进制日志已清理但中继日志完整:从库无法基于中断信息获取当时主库二进制日志,重启后会从主库最新位置开始复制,主库最新数据不会丢失,但重启期间主库的更新不会同步,导致数据不一致
    所以如果重启,一般重新同步数据
    log_slave_updates = ON从库参与级联复制或多源复制,设置ON,从库生成二进制日志
    server-id = 2保证集群内每个服务器都有唯一的 server-id,防止复制冲突
    log_bin = mysql-slave-bin从库通常不需要启用 binlog,除非它也需要作为上级主库(Master)向其他从库(Slave)同步数据
    binlog-do-db = test-dev可以控制哪些数据库的更新操作会被记录到 binlog 中。如果从库需要作为上级主库,这个参数可以减少 binlog 文件的大小和写入操作

启动

  • 参考保姆级安装教程 中safe启动

锁库&迁移数据

  • 参考数据库迁移

连接主&开启复制

  • 获取主库日志及位置:8.4版本后 SHOW BINARY LOG STATUS;
    在这里插入图片描述

  • 通过复制用户连接到主

     CHANGE REPLICATION SOURCE TO SOURCE_HOST='服务器A-IP',SOURCE_PORT = 3308, SOURCE_USER='copyer', SOURCE_PASSWORD='copyer@111',SOURCE_LOG_FILE = 'mysql-bin.000019',SOURCE_LOG_POS = 126927914,GET_SOURCE_PUBLIC_KEY=1;(获取复制源(主服务器)的公钥);
    
  • 开启复制

    • 8.0.22之后 start replica ;

检查复制

  • 8.0.22之后 show replica status\G ;
    在这里插入图片描述

http://www.hkcw.cn/article/obfWFnSyWY.shtml

相关文章

kafka学习笔记(三、消费者Consumer使用教程——消费性能多线程提升思考)

1.简介 KafkaConsumer是非线程安全的,它定义了一个acquire()方法来检测当前是否只有一个线程在操作,如不是则会抛出ConcurrentModifcationException异常。 acquire()可以看做是一个轻量级锁,它仅通过线程操作计数标记的方式来检测线程是否发…

记忆胶囊应用源码纯开源

下载地址:https://pan.quark.cn/s/729681531125 📱 应用功能特点 核心功能: 创建记忆胶囊 - 用户可以创建包含文本内容的时间胶囊时间设定 - 设置胶囊的开启时间情感标签 - 为记忆添加情感标记(开心、难过、兴奋等)…

破题城市更新 老旧街区如何新生?南京这样干→

暮春4月,经过十年更新改造的南京小西湖街区游人纷纷,老南京风貌从更新过的街巷中透出,市井烟火气里交织着现代时尚感。但是,略微向深处走走,年久失修的房屋,私搭乱建的建筑,让小西湖少了一分西湖的美,多了几分棚户的乱。王卉在小西湖出生长大,箍桶巷33号是父亲留给她的…

郑钦文今日战萨姆索诺娃 法网1/8决赛焦点

法网6月1日赛程已公布,郑钦文与萨姆索诺娃的比赛将在苏珊-朗格伦球场第二场进行,比赛时间不早于19点。当天是法网第八比赛日,将展开单打第四轮的较量。在苏珊-朗格伦球场的第一场比赛是保罗对阵波佩林的男单第四轮。从交手记录来看,萨姆索诺娃以3-2领先郑钦文。不过,在双方…

俄罗斯布良斯克州一桥梁坍塌 已致数十人伤亡

总台记者获悉,当地时间5月31日,位于俄罗斯布良斯克州的一座桥梁发生坍塌,导致当时行经桥下、由莫斯科开往该州城市克利莫沃的列车脱轨。据俄罗斯BAZA网站报道,事件造成4人死亡,至少44人受伤。据悉,死亡人员分别是火车司机、副司机和两名乘客。有媒体报道称,不明身份者在…

neo4j 5.19.0安装、apoc csv导入导出 及相关问题处理

前言 突然有需求需要用apoc 导入 低版本的图谱数据,网上资料又比较少,所以就看官网资料并处理了apoc 导入的一些问题。 相关地址 apoc 官方安装网址 apoc 官方导出csv 教程地址 apoc 官方 导入 csv 地址 docker 安装 执行如下命令启动镜像 doc…

【Linux】进程地址空间揭秘(初步认识)

10.进程地址空间(初步认识) 文章目录 10.进程地址空间(初步认识)一、进程地址空间的实验现象解析二、进程地址空间三、虚拟内存管理补充:数据的写时拷贝(浅谈)补充:页表(…

SEO长尾关键词优化进阶指南

内容概要 在流量竞争日趋激烈的数字营销环境中,长尾关键词作为精准获客的核心入口,已成为SEO进阶优化的战略重点。本指南将系统梳理从用户意图识别到可持续流量增长的完整技术路径,围绕“需求挖掘-资源构建-竞争突围”三大核心模块展开。通过…

[网页五子棋][对战模块]实现游戏房间页面,服务器开发(创建落子请求/响应对象)

实现游戏房间页面 创建 css/game_room.css #screen 用于显示当前的状态,例如“等待玩家连接中…”,“轮到你落子”,“轮到对方落子”等 #screen { width: 450px; height: 50px; margin-top: 10px; color: #8f4e19; font-size: 28px; …

利用nginx完成iframe请求的身份认证

需求说明 在dify中搭建了一个chatflow,搭建完成后,将其以iframe的方式,嵌入到自己开发的一个网站中。 嵌入完成后,效果如下图所示: 此时存在一个安全问题,如果用户知道了这个iframe的URL地址,…

t017-高校实习管理系统 【含材料源码!!!】

项目演示视频 摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统高校实习管理系统信息管理难度大&#xff0…

【项目】在线OJ(负载均衡式)

目录 一、项目目标 二、开发环境 1.技术栈 2.开发环境 三、项目树 目录结构 功能逻辑 编写思路 四、编码 1.complie_server 服务功能 代码蓝图 开发编译功能 日志功能 ​编辑 测试编译模块 开发运行功能 设置运行限制 jsoncpp 编写CR 如何生成唯一文件名 …

B3623 枚举排列(递归实现排列型枚举)

B3623 枚举排列(递归实现排列型枚举) - 洛谷 题目描述 今有 n 名学生,要从中选出 k 人排成一列拍照。 请按字典序输出所有可能的排列方式。 输入格式 仅一行,两个正整数 n,k。 输出格式 若干行,每行 k 个正整数…

深入探讨redis:主从复制

前言 如果某个服务器程序,只部署在一个物理服务器上就可能会面临一下问题(单点问题) 可用性问题,如果这个机器挂了,那么对应的客户端服务也相继断开性能/支持的并发量有限 所以为了解决这些问题,就要引入分布式系统&#xff0c…

c++ typeid运算符

typeid运算符能获取类型信息。获取到的是type_info对象。type_info类型如下: 可以看到,这个类删除了拷贝构造函数以及等号操作符。有一些成员函数:hash_code、before、name、raw_name, 还重载了和!运算符。 测试: void testTyp…

一人住院不必全家奔波!免陪照护试点“全国版”

俗话说“久病床前无孝子”,这句话道出了很多家庭面对病人陪护时的无奈与压力。特别是现在每个人都在谈论的老龄化,再叠加上独生子女,父母住院时的陪护,就更是个越来越难的难题。这时候,如果能由医院来提供标准化的照护服务,估计很多人听了都会有一种如释重负的感觉。随着…

F1西班牙站排位赛:皮亚斯特里夺杆位,迈凯伦强势领跑

北京时间5月31日,F1西班牙大奖赛排位赛落下帷幕。皮亚斯特里夺得杆位,诺里斯和维斯塔潘分列二、三位。拉塞尔排名第四,汉密尔顿第五,安东内利第六,勒克莱尔第七,加斯利第八,哈贾尔第九,阿隆索第十。阿尔本第十一,塞恩斯第十八,科拉平托第十九,角田裕毅第二十。在首轮…

哈马斯回应加沙停火提案 美称“不可接受”

哈马斯回应加沙停火提案 美称“不可接受” 以称继续行动△美国中东问题特使威特科夫(资料图)央视记者获悉,特朗普政府提出的一项旨在促成加沙停火的新一轮提案,遭到巴勒斯坦伊斯兰抵抗运动(哈马斯)的修改要求。对此,美国中东问题特使威特科夫当地时间5月31日公开表示,哈…

uniapp与微信小程序开发平台联调无法打开IDE

经测试属于网络问题。本机需要联网。否则会出现Hbuilder运行微信小程序到模拟器时无法打开 微信开发者工具 这个页面出不来会一直显示异常。这期间微信小程序开发工具的端口是通的 需要先联网

Deseq2:MAG相对丰度差异检验

首先使用代码将contigs和MAG联系起来 https://github.com/MrOlm/drep/blob/master/helper_scripts/parse_stb.py ~/parse_stb.py --reverse -f ~/bin_dir/* -o ~/bin_dir/genomes.stb # 查看第一列的contigs有没有重复(重复的话会影响后续比对) awk {p…