MySQL——主从同步

news2025/1/23 5:48:07

提醒:进行配置时,需要确保一主两从的操作系统、MySQL版本一致,否则将出现问题

环境介绍

服务器IP
主服务器172.25.254.10
从服务器-1172.25.254.11
从服务器-2172.25.254.12

配置

# 快速配置,选择多重执行,确保版本一致
[root@localhost ~]# yum install mysql-server -y
# 默认开启binlog日志

主库操作


# 主配置文件
[root@localhost ~]# vim /etc/my.cnf
# 子配置文件(二选一配置)
[root@localhost ~]# vim /etc/my.cnf.d/mysql-server.cnf
# 设置server_id(要求唯一)
server_id=10
# 启动服务
[root@localhost ~]# systemctl enable --now mysqld
# 默认无密码
[root@localhost ~]# mysql -u root -p
# 创建同步用账户
CREATE USER 'xxx'@'172.25.254.%' IDENTIFIED BY 'aaa';
# 对账户开放同步权限
GRANT REPLICATION SLAVE ON *.* TO 'xxx'@'172.25.254.%';
# 查看主服务器状态(关注MASTER_LOG_FILE、MASTER_LOG_POS)
SHOW MASTER STATUS\G
# 记录MASTER_LOG_FILE=binlog.000001、MASTER_LOG_POS=710

在这里插入图片描述

从服务器

# 从服务器设置不重复的server_id
# 从服务器-1——server_id=11
# 从服务器-2——server_id=12

# 启动服务
[root@localhost ~]# systemctl enable --now mysqld
# 默认无密码
[root@localhost ~]# mysql -u root -p
# 主从设置
mysql> CHANGE MASTER TO
# 主服务器IP
    -> MASTER_HOST='172.25.254.10',
# 主从同步账户
    -> MASTER_USER='xxx',
# 主从账户密码
    -> MASTER_PASSWORD='aaa',
# 主服务器的binlog日志
    -> MASTER_LOG_FILE='binlog.000001',
# 主服务器的Position
    -> MASTER_LOG_POS=710,
# 解决密码插件报错
    -> get_master_public_key=1;
# 当错误配置时,先stop slave再再进行配置
mysql> start slave;
# 查看从服务器状态
mysql> SHOW SLAVE STATUS\G

当显示 Slave_IO_Running: Yes、 Slave_SQL_Running: Yes 时,从服务器配置成功

在这里插入图片描述

验证

# 在主服务器中,添加一些数据
mysql> CREATE DATABASE ovo;
mysql> CREATE TABLE ovo.userlist (
    -> username varchar(20) not null,
    -> password varchar(50) not null);
mysql> INSERT INTO ovo.userlist VALUE ('ovo','111');
# 在从服务器中,查看是否有名为 ovo 的数据库
# 以及数据库内是否有 username:ovo password:111 的数据

在这里插入图片描述

主从同步原理

在主从同步过程中,会基于多个线程来操作(主库线程以及从库线程)

二进制日志转储线程(Binlog dump thread)是一个主库线程

当从库线程连接的时候, 主库可以将二进制日志发送给从库

主库读取事件的时候,会在 Binlog 上加锁,读取完成之后,再将锁释放掉

从库 I/O 线程会连接到主库,向主库发送请求更新 Binlog

从库的 I/O 线程就可以读取到Dump线程发送的 Binlog 更新部分,并且拷贝到本地的中继日志 (Relay log)

从库 SQL 线程会读取从库中的中继日志,并且执行日志中的事件,使得从库中的数据与主库保持同步

遇到的问题

描述:从服务器的Slave_IO_Running一直处于Connecting状态

报错:Message: Authentication plugin ‘caching_sha2_password’ reported error: Authentication requires secure connection.
原因:密码插件导致的
方案一:修改主服务器的密码加密方式

ALTER USER 'xxx'@'172.25.254.%' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD by 'aaa';

方案二:主从设置时,添加get_master_public_key=1;参数(文章采用此方法)

描述:从服务器的Slave_IO_Running 处于No状态

报错:‘Could not find first log file name in binary log index file’
原因:从服务器MASTER_LOG_FILE配置错误,与主服务器的binlog不一致
方案:修改主从设置的MASTER_LOG_FILE参数

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA中Maven使用的踩坑与最佳实践

文章目录 IDEA中Maven使用的踩坑与最佳实践一、环境配置类问题1. Maven环境配置2. IDEA中Maven配置建议 二、常见问题与解决方案1. 依赖下载失败2. 依赖冲突解决3. 编译问题修复 三、效率提升技巧1. IDEA Maven Helper插件使用2. 常用Maven命令配置3. 多模块项目配置4. 资源文件…

VIVADO-block desgn 中时钟连线报错

问题描述 1.自定义的IP核由于封装不规范,输出的时钟引脚缺少该时钟的相关信息 正常时钟引脚属性 异常的时钟引脚属性 2.run connection automation 中无法找到这种缺少信息的时钟源 3.axi_clk与axi interconnect时钟频率不匹配 解决方案: 1.用BUFG将缺少…

CSDN 博客之星 2024:默语的技术进阶与社区耕耘之旅

CSDN 博客之星 2024:默语的技术进阶与社区耕耘之旅 🌟 默语,是一位在技术分享与社区建设中坚持深耕的博客作者。今年,我有幸再次入围成为 CSDN 博客之星TOP300 的一员,这既是对过往努力的肯定,也是对未来探…

BUUCTF_Web(UPLOAD COURSE 1)

打开靶机,发现需要上传文件,尝试一句话木马蚁剑链接 一句话木马 【基本原理】利用文件上传漏洞,往目标网站中上传一句话木马,然后你就可以在本地通过中国菜刀chopper.exe即可获取和控制整个网站目录。表示后面即使执行错误&#…

车载软件架构 --- CP和AP作为中央计算平台的软件架构双核心

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活…

docker ubuntu:20.04构建c++ grpc环境

由c grpc必须源码编译,ubuntu版本不同可能出现的问题也不同,这里分享下我的构建过程。 我是vscode结合docker去安装c虚拟环境,我不想污染本机环境。 vscode的插件Dev Containers Dockerfile如下(如果单纯是ubuntu环境构建,可忽略该…

PV-RCNN、PV-RCNN++ 网络结构

paper: PV-RCNN https://arxiv.org/abs/1912.13192PV-RCNN https://arxiv.org/abs/2102.00463 github:使用OpenPCDet进行训练测试 https://github.com/open-mmlab/OpenPCDet PV-RCNN 简介 PV-RCNN的提出是想要综合 point-based 和 voxel-based 3D目…

认识c++

文章目录 1namespace 写博客 ,做作业 笔记很关键 1namespace ::域作用限定域 局部域>全局域>命名空间域(展开了命名空间域or指定访问命名空间域) 不要轻易展开 可以这样解决 方案一 方案二 using namespace std; 直接展开会有风…

接口 V2 完善:基于责任链模式、Canal 监听 Binlog 实现数据库、缓存的库存最终一致性

🎯 本文介绍了一种使用Canal监听MySQL Binlog实现数据库与缓存最终一致性的方案。文章首先讲解了如何修改Canal配置以适应订单表和时间段表的变化,然后详细描述了通过责任链模式优化消息处理逻辑的方法,确保能够灵活应对不同数据表的更新需求…

内容中台实施最佳实践解析与应用指南

内容概要 内容中台是一个旨在提升企业内容管理与分发能力的战略性平台,其实施最佳实践对于企业在数字化转型中尤为重要。内容中台的建设,不仅涉及技术层面的架构设计,还需结合组织变革、业务流程优化等多个方面,以实现高效、灵活…

顺序表和链表(详解)

线性表 线性表( linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构,也就说是连续的一条直线。…

TCP全连接队列

1. 理解 int listen(int sockfd, int backlog) 第二个参数的作用 backlog:表示tcp全连接队列的连接个数1。 如果连接个数等于backlog1,后续连接就会失败,假设tcp连接个数为0,最大连接个数就为1,并且不accept获取连接…

C语言程序环境与预处理—从源文件到执行程序,这里面有怎么的工序?绝对0基础!

正文开始前,我们简单聊上一聊! 众所周知!编译器的功能非常强大的,我们在编译软件上敲的每一行代码,点击执行,就会输出结果,从代码-->输出结果,这中间经历了怎样的一个过程&#…

第35天:安全开发-JavaEE应用原生反序列化重写方法链条分析触发类类加载

时间轴: 序列化与反序列化图解: 演示案例: Java-原生使用-序列化&反序列化 Java-安全问题-重写方法&触发方法 Java-安全问题-可控其他类重写方法 Java-原生使用-序列化&反序列化 1.为什么进行序列化和反序列化&#xff1…

硬件作品3----STM32F103RCT6最小系统板MCU配置

参考文章:对stm32F103RCT6原理图解析(详细)-CSDN博客 本想绘制稍微复杂一些的电路,但是出现很多问题,因此先绘制一块最小系统板进行原理、绘制方法的验证。 设计难度:★ 适合人群:初学者 一、…

SparkSQL数据源与数据存储综合实践

文章目录 1. 打开项目2. 查看数据集2.1 查看JSON格式数据2.2 查看CSV格式数据2.3 查看TXT格式数据 3. 添加单元测试依赖4. 创建数据加载与保存对象4.1 创建Spark会话对象4.2 创建加载JSON数据方法4.3 创建加载CSV数据方法4.4 创建加载Text数据方法4.5 创建加载JSON数据扩展方法…

【回忆迷宫——处理方法+DFS】

题目 代码 #include <bits/stdc.h> using namespace std; const int N 250; int g[N][N]; bool vis[N][N]; int dx[4] {0, 0, -1, 1}; int dy[4] {-1, 1, 0, 0}; int nx 999, ny 999, mx, my; int x 101, y 101; //0墙 (1空地 2远方) bool jud(int x, int y) {if…

项目中使用的是 FastJSON(com.alibaba:fastjson)JSON库

从你的 pom.xml 文件中可以看到&#xff0c;项目明确依赖了以下 JSON 库&#xff1a; FastJSON&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version> </depende…

高效安全文件传输新选择!群晖NAS如何实现无公网IP下的SFTP远程连接

文章目录 前言1. 开启群晖SFTP连接2. 群晖安装Cpolar工具3. 创建SFTP公网地址4. 群晖SFTP远程连接5. 固定SFTP公网地址6. SFTP固定地址连接 前言 随着远程办公和数据共享成为新常态&#xff0c;如何高效且安全地管理和传输文件成为了许多人的痛点。如果你正在寻找一个解决方案…

Windows第一次上手鸿蒙周边

端云一体所需装备 很重要&#xff1a;C/D/E/F盘要有二三十G的可用空间&#xff01; 硬件&#xff1a;华为鸿蒙实验箱&#xff08;基础版&#xff09;》飞机板核心板环境监测板 软件&#xff1a;Visual Studio Code写代码 终端编译 Hiburn烧录到开发板 MobaXterm &#xff08…