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服务使配置生效。不过要特别强调,跳过所有错误这种方式属于极端做法,一般建议优先排查清楚错误原因,实在无法解决且明确对数据影响不大时再考虑使用。

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

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

相关文章

Linux的域名解析服务器

什么是DNS DNS&#xff08;Domain Name System&#xff09;是互联网上的一项服务&#xff0c;它作为将域名和IP地址相互映射的一个分 布式数据库&#xff0c;能够使人更方便的访问互联网 DNS使用的是53端口&#xff0c; 通常DNS是以UDP这个较快速的数据传输协议来查询的&…

vue 中绑定样式 【class样式绑定】

class 样式绑定 在 Vue 中&#xff0c;可以通过 :class&#xff08;或简写 v-bind:class&#xff09;实现类名&#xff08;class&#xff09;样式的绑定。Vue 提供了几种常用的绑定方式&#xff0c;分别支持字符串、对象和数组语法。 绑定字符串 <div :class"active…

Unity3D 序列化机制:引擎内的应用场景和基本原理

前言 Unity3D 的序列化机制是其核心功能之一&#xff0c;用于在编辑器和运行时之间持久化数据、管理场景状态、处理预制体&#xff08;Prefab&#xff09;以及实现跨平台兼容性。以下是其应用场景和基本原理的详细解析&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小…

Python 字典键 “三变一” 之谜

开头&#xff1a;读者的“玄学”字典谜题 上周&#xff0c;朋友发来了一段让他抓耳挠腮的代码&#xff1a; >>> {True: foo, 1: bar, 1.0: baz} {True: baz} “我明明定义了布尔True、整数1、浮点数1.0三个键&#xff0c;结果字典里只剩True一个键&#xff0c;值…

如何选择 RabbitMQ、Redis 队列等消息中间件?—— 深度解析与实战评估

如何选择 RabbitMQ、Redis 队列等消息中间件?—— 深度解析与实战评估 1. 引言 在现代分布式系统架构中,消息队列(Message Queue,MQ) 作为解耦服务、异步处理和高效通信的关键组件,被广泛应用于高并发、微服务和数据流处理场景。选择合适的消息中间件不仅能提高系统的稳…

特征工程四:数据特征提取TfidfVectorizer的使用

TfidfVectorizer 深度解析 TfidfVectorizer 是 scikit-learn 中用于文本特征提取的核心工具&#xff0c;它将原始文本转换为 TF-IDF 特征矩阵&#xff0c;是自然语言处理(NLP)和文本挖掘的基础组件。 一、核心原理 1. TF-IDF 计算 TF (Term Frequency)&#xff1a;词频&…

c/c++爬虫总结

GitHub 开源 C/C 网页爬虫探究&#xff1a;协议、实现与测试 网页爬虫&#xff0c;作为一种自动化获取网络信息的强大工具&#xff0c;在搜索引擎、数据挖掘、市场分析等领域扮演着至关重要的角色。对于希望深入理解网络工作原理和数据提取技术的 C/C 开发者&#xff0c;尤其是…

PostgreSQL 的表连接方法

PostgreSQL 的表连接方法 PostgreSQL 提供了多种高效的连接算法&#xff0c;每种方法适用于不同的查询场景。以下是 PostgreSQL 支持的四种主要表连接方法及其特点&#xff1a; 1 Nested Loop Join&#xff08;嵌套循环连接&#xff09; 工作原理 对外表的每一行&#xff0…

【Qt】qss语法详解

QSS (Qt Style Sheets) 语法格式详解 QSS 是 Qt 的样式表语言&#xff0c;类似于 CSS&#xff0c;用于自定义 Qt 应用程序的外观。以下是 QSS 的完整语法格式说明&#xff1a; 基本语法结构 selector {property: value;property: value;... }1. 选择器 (Selectors) 基本选择…

Azure资源创建与部署指南

本文将指导您如何在Azure平台上创建和配置必要的资源,以部署基于OpenAI的应用程序。 资源组创建 资源组是管理和组织Azure资源的逻辑容器。 在Azure门户顶端的查询框中输入"Resource groups"(英文环境)或"资源组"(中文环境)在搜索结果中点击"资…

Java后端快速生成验证码

Hutool是一个小而全的Java工具类库&#xff0c;它提供了很多实用的工具类&#xff0c;包括但不限于日期处理、加密解密、文件操作、反射操作、HTTP客户端等。 核心工具类&#xff1a;CaptchaUtil&#xff0c;CaptchaUtil 是 Hutool 提供的一个工具类&#xff0c;用于创建各种类…

sql 备份表a数据到表b

备份表a数据到表b mysql CREATE TABLE sys_dict_240702 LIKE sys_dict;INSERT INTO sys_dict_240702 SELECT * FROM sys_dict;mssql select * into t_Dict_240702 from t_Dict

2.4GHz无线通信芯片选型指南:集成SOC与低功耗方案解析

今天给大家分享几款2.4GHz无线通信芯片方案&#xff1a; 一、集成SOC芯片方案 XL2407P&#xff08;芯岭技术&#xff09; 集成射频收发机和微控制器&#xff08;如九齐NY8A054E&#xff09; 支持一对多组网和自动重传 发射功率8dBm&#xff0c;接收灵敏度-96.5dBm&#xff08…

Tomcat与纯 Java Socket 实现远程通信的区别

Servlet 容器​​&#xff08;如 Tomcat&#xff09; 是一个管理 Servlet 生命周期的运行环境&#xff0c;主要功能包括&#xff1a; ​​协议解析​​&#xff1a;自动处理 HTTP 请求/响应的底层协议&#xff08;如报文头解析、状态码生成&#xff09;&#xff1b; ​​线程…

[超级简单]讲解如何用PHP实现LINE Pay API!

在 PHP 中实现 LINE Pay API 之前我应该​​做哪些准备&#xff1f;如何在 PHP 中实现 LINE Pay API&#xff1f; 目录 [前提] 环境使用 PHP 实现 LINE Pay API 的准备工作使用 PHP 实现 LINE Pay API概括 [前提] 环境 这次我们将使用SandBox环境&#xff08;测试环境&a…

centos7.x下,使用宝塔进行主从复制的原理和实践

操作原理&#xff1a; 一、主库配置 1.修改 MySQL 配置文件 # 编辑主库配置文件&#xff08;路径根据实际系统可能不同&#xff09; vim /etc/my.cnf # 添加以下配置 [mysqld] server-id 1 # 唯一 ID&#xff0c;主库设置为 1 log-bin mysql-bin …

从零实现基于Transformer的英译汉任务

1. model.py&#xff08;用的是上一篇文章的代码&#xff1a;从0搭建Transformer-CSDN博客&#xff09; import torch import torch.nn as nn import mathclass PositionalEncoding(nn.Module):def __init__ (self, d_model, dropout, max_len5000):super(PositionalEncoding,…

c#建筑行业财务流水账系统软件可上传记账凭证财务管理系统签核功能

# financial_建筑行业 建筑行业财务流水账系统软件可上传记账凭证财务管理系统签核功能 # 开发背景 软件是给岳阳客户定制开发一款建筑行业流水账财务软件。提供工程签证单、施工日志、人员出勤表等信息记录。 # 财务管理系统功能描述 1.可以自行设置记账科目&#xff0c;做凭…

MySQL 8.0 OCP 1Z0-908 题目解析(2)

题目005 Choose two. Which two actions can obtain information about deadlocks? □ A) Run the SHOW ENGINE INNODB MUTEX command from the mysql client. □ B) Enable the innodb_status_output_locks global parameter. □ C) Enable the innodb_print_all_deadlock…

XA协议和Tcc

基于 XA 协议的两阶段提交 (2PC)。这是一种分布式事务协议&#xff0c;旨在保证在多个参与者&#xff08;通常是不同的数据库或资源管理器&#xff09;共同参与的事务中&#xff0c;所有参与者要么都提交事务&#xff0c;要么都回滚事务&#xff0c;从而维护数据的一致性。 你…