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

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语句明确指定只对db1db2这两个数据库进行复制操作。

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模式下部分数据库主从复制时&#xff0c;以下是详细的操作步骤以及对应的执行位置说明&#xff0c;还有报错处理方法介绍&#xff1a; 操作步骤 1. 备份主库指定数据库&#xff08;db1、db2&#xff09;…...

用ffmpeg压缩视频参数建议

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

输入顶点坐标输出立方体长宽高的神经网络 Snipaste贴图软件安装

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

用python清除PDF文件中的水印(Adobe Acrobat 无法删除)

学校老师发的资料&#xff0c;有时候会带水印&#xff0c;有点强迫症的都想给它去掉。用Adobe Acrobat试了下&#xff0c;检测不到水印&#xff0c;无法删除&#xff01;分析发现原来这类PDF文件是用word编辑的&#xff0c;其中的水印是加在了页眉中&#xff01; 自己动手想办法…...

kotlin 数据类

一 kotlin数据类与java普通类区别 Kotlin 的 data class 与 Java 中的普通类&#xff08;POJO&#xff09;相比&#xff0c;确实大大减少了样板代码&#xff08;boilerplate&#xff09;&#xff0c;但它的优势不止于自动生成 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数据库

数据管理和分析的领域&#xff0c;将Excel中的数据导入到Oracle数据库是一个常见的需求&#xff0c;无论是为了利用Oracle强大的数据处理能力&#xff0c;还是为了实现数据的集中存储和管理&#xff0c;这一过程都需要一定的步骤和技巧&#xff0c;本文将详细介绍如何从Excel导…...

PyTorch API 6 - 编译、fft、fx、函数转换、调试、符号追踪

文章目录 torch.compiler延伸阅读 torch.fft快速傅里叶变换辅助函数 torch.func什么是可组合的函数变换&#xff1f;为什么需要可组合的函数变换&#xff1f;延伸阅读 torch.futurestorch.fx概述编写转换函数图结构快速入门图操作直接操作计算图使用 replace_pattern() 进行子图…...

Dagster Pipes系列-1:调用外部Python脚本

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

python shutil 指定文件夹打包文件为 zip 压缩包

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

Webug4.0通关笔记25- 第30关SSRF

目录 一、SSRF简介 1.SSRF原理 2.渗透方法 二、第30关SSRF渗透实战 1.打开靶场 2.渗透实战 &#xff08;1&#xff09;Windows靶场修复 &#xff08;2&#xff09;Docker靶场修复 &#xff08;3&#xff09;获取敏感文件信息 &#xff08;4&#xff09;内网端口与服务…...

Android学习总结之线程池篇

一、线程池参数调优实战真题 真题 1&#xff1a;直播 APP 弹幕加载线程池设计 题目描述&#xff1a;直播 APP 需要实时加载弹幕数据&#xff08;网络请求&#xff0c;IO 密集型&#xff09;&#xff0c;同时渲染弹幕视图&#xff08;UI 操作需切主线程&#xff09;&#xff0…...

OpenCV 中用于背景分割的一个类cv::bgsegm::BackgroundSubtractorLSBP

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

MacOS 上构建 gem5

MacOS 中只存在 python3&#xff0c;但是scons 只认 python&#xff0c;不在 系统中创建 软连接&#xff0c;一个是因为比较难操作&#xff1b;另一个是尽量不要更改系统。所以独立构件python 和scons&#xff1a; 1&#xff0c;安装python 下载源代码&#xff1a; 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函数:字符串函数

目录 为什么需要字符串函数&#xff1f; 1️⃣ LENGTH(str) — 这个字符串有几个“字节”&#xff1f; 2️⃣ CHAR_LENGTH(str) — 这个字符串有几个“字符”&#xff1f; 3️⃣ TRIM(str) — 把两边的空格剪掉 4️⃣ REPLACE(str, a, b) — 把 a 替换成 b 使用这些函数时…...

DAY04:Vue.js 指令与事件处理深度解析之从基础到实战

1. 指令系统核心概念 1.1 插值表达式与基础指令 Vue.js 的指令系统是其响应式编程模型的核心&#xff0c;我们首先从最基础的插值表达式开始&#xff1a; <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 对比 一、微调概述 微调&#xff08;Fine-tun…...

云效 MCP Server:AI 驱动的研发协作新范式

作者&#xff1a;黄博文、李晔彬 云效 MCP Server 是什么&#xff1f; 云效 MCP&#xff08;Model Context Protocol&#xff09;是阿里云云效平台推出的模型上下文协议标准化接口系统&#xff0c;作为连接 AI 助手与 DevOps 平台的核心桥梁&#xff0c;通过模型上下文协议将…...

Linux常见指令解析(三)

通配符 * *可以匹配任意名称的文件&#xff0c;如&#xff1a; ls * 列出当前目录下的所有非隐藏文件和目录&#xff0c;并展开目录内容 ls *.c 列出当前目录下以.c为结尾的文件 rm -rf * 删除所有非隐藏文件 alias指令 alias指令用于给命令取别名。如&#xff1a; 给ls …...

消息队列如何保证消息可靠性(kafka以及RabbitMQ)

目录 RabbitMQ保证消息可靠性 生产者丢失消息 MQ丢失消息 消费端丢失了数据 Kakfa的消息可靠性 生产者的消息可靠性 Kakfa的消息可靠性 消费者的消息可靠性 RabbitMQ保证消息可靠性 生产者丢失消息 1.事务消息保证 生产者在发送消息之前&#xff0c;开启事务消息随后生…...

HTTP学习

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

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 最新)

摘要 在技术开发与协作中&#xff0c;GitHub 等国际平台的访问效率及国内社区的使用体验常受网络环境影响。本文严格遵循网络安全规范&#xff0c;聚焦本地化 DNS 优化、官方镜像加速、浏览器工具提效等合规技术&#xff0c;提供覆盖国内外技术平台的访问优化方案&#xff0c;…...

Android RxJava框架分析:它的执行流程是如何的?它的线程是如何切换的?如何自定义RxJava操作符?

目录 RxJava是什么&#xff1f;为什么使用。RxJava是如何使用的呢&#xff1f;RxJava如何和Retrofit一起使用。RxJava源码分析。 &#xff08;1&#xff09;他执行流程是如何的。&#xff08;2&#xff09;map&#xff08;3&#xff09;线程的切换。 如何自定义RxJava操作符…...

MySQL及线程关于锁的面试题

目录 1.了解过 MySQL 死锁问题吗&#xff1f; 2.什么是线程死锁&#xff1f;死锁相关面试题 2.1 什么是死锁&#xff1a; 2.2 形成死锁的四个必要条件是什么&#xff1f; 2.3 如何避免线程死锁&#xff1f; 3. MySQL 怎么排查死锁问题&#xff1f; 4.Java线上死锁问题如…...

前端vue+elementplus实现上传通用组件

上传组件&#xff1a; <template><div class"upload-file"><el-uploadmultiple:action"uploadFileUrl":before-upload"handleBeforeUpload":file-list"fileList":limit"limit":on-error"handleUploadE…...

联合类型的逻辑或关系与类型保护

在 TypeScript 中&#xff0c;联合类型&#xff08;Union Types&#xff09;是一种强大的类型工具&#xff0c;它允许一个变量可以是几种不同类型中的一种。联合类型通过逻辑“或”关系&#xff08;|&#xff09;连接多个类型。这种类型的灵活性使得我们能够处理多样化的数据输…...

spring boot3.0自定义校验注解:文章状态校验示例

文章目录 Spring Boot 自定义校验注解&#xff1a;状态校验示例一、创建 State 注解步骤&#xff1a;1. 创建自定义注解&#xff1a;2. 实现校验逻辑&#xff1a; 二、 实现自定义校验步骤:1. 在实体类中使用自定义校验注解 State&#xff1a;2. 添加 State 注解&#xff1a; 总…...