MySQL解决主从复制的报错问题
MySQL 8.4 非 GTID 模式部分数据库主从复制指南
在进行MySQL 8.4非GTID模式下部分数据库主从复制时,以下是详细的操作步骤以及对应的执行位置说明,还有报错处理方法介绍:
操作步骤
1. 备份主库指定数据库(db1、db2)(主服务器上执行)
mkdir -p /backup
chown mysql:mysql /backup
mysqldump -u root -p --single-transaction --master-data=2 --databases db1 db2 --set-gtid-purged=OFF > /backup/partial_dump.sql
--single-transaction
:此参数可避免在备份过程中对数据表进行锁定,保障数据库正常读写不受影响。--master-data=2
:用于记录主库的binlog位置信息,会以注释形式添加到备份文件中,方便后续配置使用。--set-gtid-purged=OFF
:鉴于采用的是非GTID模式,设置该参数为OFF
可禁用与GTID相关的内容输出,防止后续出现不必要干扰。
2. 停止从库复制(从服务器上执行)
STOP REPLICA;
注意这里使用的是MySQL 8.0及以上版本规范的语法来停止从库的复制进程。
3. 清理从库(可选,从服务器上执行)
DROP DATABASE IF EXISTS db1;
DROP DATABASE IF EXISTS db2;
此操作需谨慎进行,因为执行后会删除对应数据库中的所有数据,要提前确认好或者做好额外备份,避免数据丢失。
4. 传输备份文件(主服务器上执行)
scp /backup/partial_dump.sql 从服务器用户名@从服务器IP:/backup/
执行该命令时,要确保从服务器已开启相应的文件传输服务(如ssh
服务),并且接收端的“从服务器用户名”对目标目录/backup/
具备写入权限,这样才能成功传输备份文件。
5. 从库恢复备份(从服务器上执行)
mysql -u root -p < /backup/partial_dump.sql
通过此命令,能将接收到的备份文件中的数据库结构与数据完整导入到从库中,为后续配置主从复制奠定数据基础。
6. 配置从库复制(从服务器上执行)
首先,查看binlog位置:
grep -A1 "CHANGE MASTER TO" /backup/partial_dump.sql
通过这条命令,我们可以从备份文件中查找之前记录的主库 binlog 位置信息,这些信息后续会配置到从库的主从复制设置中。
接着,配置主库连接信息:
-- 配置主库连接信息(在从服务器上执行)
CHANGE REPLICA TO MASTER_HOST='192.168.73.110', -- 主库IP,这里需要替换为实际的主库IP地址MASTER_USER='repluser', -- 复制用户,要提前在主库创建好用于复制的用户,并赋予相应权限MASTER_PASSWORD='centos', -- 复制用户密码,确保密码正确且保密MASTER_PORT=3306, -- 主库端口,通常MySQL默认端口是3306,若有修改则填实际端口MASTER_LOG_FILE='mysql-bin.000003', -- 从grep结果中获取对应的binlog文件名MASTER_LOG_POS=245, -- 从grep结果中获取对应的binlog位置坐标MASTER_RETRY_COUNT=10; -- 连接重试次数,设置合适的重试次数以应对可能出现的网络等问题导致的连接失败-- 指定复制的数据库(在从服务器上执行)
CHANGE REPLICATION FILTER REPLICATE_DO_DB = (db1, db2);
配置时,务必准确填写各项参数,像主库IP、用于复制的用户及其密码等关键信息都要确保无误,以此保障从库能顺利连接主库进行数据复制,同时通过CHANGE REPLICATION FILTER
语句明确指定只对db1
和db2
这两个数据库进行复制操作。
7. 启动从库复制(从服务器上执行)
START REPLICA;
遵循MySQL 8.0及以上版本的语法规范来启动从库的复制进程。
8. 验证复制状态(从服务器上执行)
SHOW REPLICA STATUS
查看输出结果时,重点留意以下两项是否显示为Yes
:
Replica_IO_Running
:若该项为Yes
,表明从库的I/O线程运行正常,可从主库读取binlog日志文件。Replica_SQL_Running
:该项为Yes
意味着从库的SQL线程运行正常,能将读取到的binlog内容解析并应用到从库中,保证数据的一致性。
若这两项中任何一项显示为No
,就需要进一步排查诸如网络连接、主从库配置参数以及权限设置等方面是否存在问题。
报错处理方法
方法1. 跳过指定数量的事务(从服务器上执行)
mysql>slave stop;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
mysql>slave start
可根据实际情况,按需修改跳过的事务数量,该方法适用于确定某个事务导致复制中断且可跳过此事务的情形。
方法2. 修改配置文件跳过错误(从服务器上执行,需重启MySQL服务)
vi /etc/my.cnf
在[mysqld]
配置项下面添加以下内容:
#slave-skip-errors=1062,1053,1146 (跳过指定类型错误,可按实际报错的错误编号填写)
slave-skip-errors=all (跳过所有错误,需谨慎使用,可能会掩盖潜在问题,导致数据不一致等情况)
添加配置后,要重启MySQL服务使配置生效。不过要特别强调,跳过所有错误这种方式属于极端做法,一般建议优先排查清楚错误原因,实在无法解决且明确对数据影响不大时再考虑使用。
相关文章:
MySQL解决主从复制的报错问题
MySQL 8.4 非 GTID 模式部分数据库主从复制指南 在进行MySQL 8.4非GTID模式下部分数据库主从复制时,以下是详细的操作步骤以及对应的执行位置说明,还有报错处理方法介绍: 操作步骤 1. 备份主库指定数据库(db1、db2)…...

用ffmpeg压缩视频参数建议
注意:代码中的斜杠\可以删除 一、基础压缩命令(画质优先) libx265推荐配置 ffmpeg -i input.mp4 -c:v libx265 -crf 25 -preset medium -c:a aac -b:a 128k output.mp4-crf:建议25-28(值越小画质越高) -preset:平…...

输入顶点坐标输出立方体长宽高的神经网络 Snipaste贴图软件安装
写一个神经网络,我输入立方体投影线段的三视图坐标,输出分类和长宽高 放这了明天接着搞 -------------------------------------------- 开搞 然而我的数据是这样的 winget install Snipaste f1启动,双击贴图隐藏 用右边4个数据做输入…...

用python清除PDF文件中的水印(Adobe Acrobat 无法删除)
学校老师发的资料,有时候会带水印,有点强迫症的都想给它去掉。用Adobe Acrobat试了下,检测不到水印,无法删除!分析发现原来这类PDF文件是用word编辑的,其中的水印是加在了页眉中! 自己动手想办法…...
kotlin 数据类
一 kotlin数据类与java普通类区别 Kotlin 的 data class 与 Java 中的普通类(POJO)相比,确实大大减少了样板代码(boilerplate),但它的优势不止于自动生成 getter/setter、copy()、equals()、toString()&am…...
豆瓣电影Top250数据工程实践:从爬虫到智能存储的技术演进(含完整代码)
目录 引言:当豆瓣榜单遇见大数据技术 项目文档 1.1 选题背景 1.2 项目目标 2. 项目概述 2.1 系统架构设计 2.2 技术选型 2.3 项目环境搭建 2.3.1 基础环境准备 2.3.2 爬虫环境配置 2.3.3 Docker安装ES连接Kibana 安装IK插件 2.3.4 vscode依赖服务安装 3. 核心模…...
把Excel数据文件导入到Oracle数据库
数据管理和分析的领域,将Excel中的数据导入到Oracle数据库是一个常见的需求,无论是为了利用Oracle强大的数据处理能力,还是为了实现数据的集中存储和管理,这一过程都需要一定的步骤和技巧,本文将详细介绍如何从Excel导…...
PyTorch API 6 - 编译、fft、fx、函数转换、调试、符号追踪
文章目录 torch.compiler延伸阅读 torch.fft快速傅里叶变换辅助函数 torch.func什么是可组合的函数变换?为什么需要可组合的函数变换?延伸阅读 torch.futurestorch.fx概述编写转换函数图结构快速入门图操作直接操作计算图使用 replace_pattern() 进行子图…...

Dagster Pipes系列-1:调用外部Python脚本
本文是"Dagster Pipes教程"的第一部分,介绍如何通过Dagster资产调用外部Python脚本并集成到数据管道中。首先,创建Dagster资产subprocess_asset,利用PipesSubprocessClient资源执行外部脚本external_code.py,实现跨进程…...

python shutil 指定文件夹打包文件为 zip 压缩包
python shutil 指定文件夹打包文件为 zip 压缩包,具体代码如下: import shutil# 指定要打包的文件夹路径 src_doc ./test# 指定输出的压缩包文件名(不包含扩展名) output_filename testfromat_ zip# 打包并压缩文件夹为 ZIP …...

Webug4.0通关笔记25- 第30关SSRF
目录 一、SSRF简介 1.SSRF原理 2.渗透方法 二、第30关SSRF渗透实战 1.打开靶场 2.渗透实战 (1)Windows靶场修复 (2)Docker靶场修复 (3)获取敏感文件信息 (4)内网端口与服务…...
Android学习总结之线程池篇
一、线程池参数调优实战真题 真题 1:直播 APP 弹幕加载线程池设计 题目描述:直播 APP 需要实时加载弹幕数据(网络请求,IO 密集型),同时渲染弹幕视图(UI 操作需切主线程)࿰…...

OpenCV 中用于背景分割的一个类cv::bgsegm::BackgroundSubtractorLSBP
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::bgsegm::BackgroundSubtractorLSBP 是 OpenCV 中用于背景分割的一个类,它基于局部样本二进制模式(Local Sample Bina…...

MacOS 上构建 gem5
MacOS 中只存在 python3,但是scons 只认 python,不在 系统中创建 软连接,一个是因为比较难操作;另一个是尽量不要更改系统。所以独立构件python 和scons: 1,安装python 下载源代码: Python S…...

认识中间件-以及两个简单的示例
认识中间件-以及两个简单的示例 什么是中间件一个响应处理中间件老朋友 nest g如何使用为某个module引入全局引入编写逻辑一个日志中间件nest g mi 生成引入思考代码进度什么是中间件 官方文档 中间件是在路由处理程序之前调用的函数。中间件函数可以访问请求和响应对象,以及…...

(五)毛子整洁架构(分布式日志/Redis缓存/OutBox Pattern)
文章目录 项目地址一、结构化日志1.1 使用Serilog1. 安装所需要的包2. 注册服务和配置3. 安装Seq服务 1.2 添加分布式id中间件1. 添加中间件2. 注册服务3. 修改Application的LoggingBehavior 二、Redis缓存2.1 添加缓存1. 创建接口ICaching接口2. 实现ICaching接口3. 注册Cachi…...
SQL:MySQL函数:字符串函数
目录 为什么需要字符串函数? 1️⃣ LENGTH(str) — 这个字符串有几个“字节”? 2️⃣ CHAR_LENGTH(str) — 这个字符串有几个“字符”? 3️⃣ TRIM(str) — 把两边的空格剪掉 4️⃣ REPLACE(str, a, b) — 把 a 替换成 b 使用这些函数时…...
DAY04:Vue.js 指令与事件处理深度解析之从基础到实战
1. 指令系统核心概念 1.1 插值表达式与基础指令 Vue.js 的指令系统是其响应式编程模型的核心,我们首先从最基础的插值表达式开始: <div id"app"><!-- 基础文本插值 --><p>{{ message }}</p><!-- JavaScript 表达…...

大模型微调终极方案:LoRA、QLoRA原理详解与LLaMA-Factory、Xtuner实战对比
文章目录 一、微调概述1.1 微调步骤1.2 微调场景 二、微调方法2.1 三种方法2.2 方法对比2.3 关键结论 三、微调技术3.1 微调依据3.2 LoRA3.2.1 原理3.2.2 示例 3.3 QLoRA3.4 适用场景 四、微调框架4.1 LLaMA-Factory4.2 Xtuner4.3 对比 一、微调概述 微调(Fine-tun…...

云效 MCP Server:AI 驱动的研发协作新范式
作者:黄博文、李晔彬 云效 MCP Server 是什么? 云效 MCP(Model Context Protocol)是阿里云云效平台推出的模型上下文协议标准化接口系统,作为连接 AI 助手与 DevOps 平台的核心桥梁,通过模型上下文协议将…...

Linux常见指令解析(三)
通配符 * *可以匹配任意名称的文件,如: ls * 列出当前目录下的所有非隐藏文件和目录,并展开目录内容 ls *.c 列出当前目录下以.c为结尾的文件 rm -rf * 删除所有非隐藏文件 alias指令 alias指令用于给命令取别名。如: 给ls …...
消息队列如何保证消息可靠性(kafka以及RabbitMQ)
目录 RabbitMQ保证消息可靠性 生产者丢失消息 MQ丢失消息 消费端丢失了数据 Kakfa的消息可靠性 生产者的消息可靠性 Kakfa的消息可靠性 消费者的消息可靠性 RabbitMQ保证消息可靠性 生产者丢失消息 1.事务消息保证 生产者在发送消息之前,开启事务消息随后生…...

HTTP学习
HTTP知识 01. 经典五层模型 应用层 为应用软件提供了很多服务,构建于协议之上。 传输层 数据的传输都是在这层定义的,数据过大分包,分片。 网络层 为数据在节点之间传输创建逻辑链路 数据链路层 通讯实体间建立数据链路连接 物理层 主要作用…...

go语言实现IP归属地查询
效果: 实现代码main.go package mainimport ("encoding/json""fmt""io/ioutil""net/http""os" )type AreaData struct {Continent string json:"continent"Country string json:"country"ZipCode …...
一站式解决技术平台访问难题:合规优化方案助力高效开发(2025 最新)
摘要 在技术开发与协作中,GitHub 等国际平台的访问效率及国内社区的使用体验常受网络环境影响。本文严格遵循网络安全规范,聚焦本地化 DNS 优化、官方镜像加速、浏览器工具提效等合规技术,提供覆盖国内外技术平台的访问优化方案,…...

Android RxJava框架分析:它的执行流程是如何的?它的线程是如何切换的?如何自定义RxJava操作符?
目录 RxJava是什么?为什么使用。RxJava是如何使用的呢?RxJava如何和Retrofit一起使用。RxJava源码分析。 (1)他执行流程是如何的。(2)map(3)线程的切换。 如何自定义RxJava操作符…...

MySQL及线程关于锁的面试题
目录 1.了解过 MySQL 死锁问题吗? 2.什么是线程死锁?死锁相关面试题 2.1 什么是死锁: 2.2 形成死锁的四个必要条件是什么? 2.3 如何避免线程死锁? 3. MySQL 怎么排查死锁问题? 4.Java线上死锁问题如…...
前端vue+elementplus实现上传通用组件
上传组件: <template><div class"upload-file"><el-uploadmultiple:action"uploadFileUrl":before-upload"handleBeforeUpload":file-list"fileList":limit"limit":on-error"handleUploadE…...
联合类型的逻辑或关系与类型保护
在 TypeScript 中,联合类型(Union Types)是一种强大的类型工具,它允许一个变量可以是几种不同类型中的一种。联合类型通过逻辑“或”关系(|)连接多个类型。这种类型的灵活性使得我们能够处理多样化的数据输…...
spring boot3.0自定义校验注解:文章状态校验示例
文章目录 Spring Boot 自定义校验注解:状态校验示例一、创建 State 注解步骤:1. 创建自定义注解:2. 实现校验逻辑: 二、 实现自定义校验步骤:1. 在实体类中使用自定义校验注解 State:2. 添加 State 注解: 总…...