使用mysql的binlog进行数据恢复

1.mysql安装环境

在你本地电脑windows上建一个和生产环境一样的mysql版本
我的是 mysql5.7.43

安装教程可以自行上网搜(这里不做介绍)
可参考:

1.1安装路径

我的mysql安装路径:

D:\mysql\mysql-5.7.43-winx64\bin

在这里插入图片描述
*

1.2my.ini

[mysqld]
log-bin=mysql-bin
binlog-format=Row
server-id=123456
max_allowed_packet=128M
max_binlog_stmt_cache_size=100M
character-set-server=utf8
explicit_defaults_for_timestamp=1
gtid-mode=ON
enforce-gtid-consistency=ON
#绑定IPv4和3306端口
bind-address = 0.0.0.0
port = 3306
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
default_storage_engine=innodb
innodb_buffer_pool_size=1000M
innodb_log_file_size=50M
# 设置mysql的安装目录
basedir=D:\mysql\mysql-5.7.43-winx64\
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql\mysql-5.7.43-winx64\data
# 允许最大连接数
max_connections=20
# skip_grant_tables
log-error=mysql-error.log
[mysql]
default-character-set=utf8mb4
[mysql.server]
default-character-set=utf8mb4
[mysql_safe]
default-character-set=utf8mb4
[client]
max_allowed_packet=128M
port = 3306
plugin-dir=D:\mysql\mysql-5.7.43-winx64\lib\plugin

1.4检查是否有binlog文件

我的文件在路径下:


> D:\mysql\mysql-5.7.43-winx64\bin

在这里插入图片描述

1.3data文件

在这里插入图片描述

2.环境等都配置好了启动mysql

出现了这个,证明你的mysql应该是启动了
在这里插入图片描述

3.建数据库

建一个你自己需要的库和对应的表

4.查询binlog是否开启

SHOW VARIABLES LIKE ‘log_bin’;

在这里插入图片描述
发现我的是关闭状态,如何配置mysql的binlog开启状态,可参考链接:

https://blog.csdn.net/yilufa666666/article/details/110250865

但我的电脑环境参考了也还是打不开binlog开启状态,后来我使用了一个命解决了:
– 启动mysql

mysqld --defaults-file=“D:\mysql\mysql-5.7.43-winx64\bin\my.ini”
–log-bin=mysql-bin --server-id=1

启动命令截图如下:
在这里插入图片描述

再次查询,binlog可以开启了

在这里插入图片描述

5.下载binlog日志文件

在这里插入图片描述

  • 服务器上的,一般也是在mysql安装目录的bin下面,自己去找找吧

5.1打开binlog文件看看

在这里插入图片描述
看不懂,因为是二进制嘛

5.2新增数据和删除数据

新增一条数据试试:
在这里插入图片描述
再删除
在这里插入图片描述
新增和删除的数据,都会在binlog里面存储

5.3把binlog文件转我们能看懂的文件

打开你的cmd,输入文件转换命令
在这里插入图片描述

D:\mysql\mysql-5.7.43-winx64\bin\mysqlbinlog --base64-output=DECODE-ROWS -vv D:\mysql\mysql-5.7.43-winx64\data\mysql-bin.000020 > D:\mysql\mysql-5.7.43-winx64\logs\output1.sql

命令解释:
你的mysqlbinlog

D:\mysql\mysql-5.7.43-winx64\bin\mysqlbinlog

日志文件

D:\mysql\mysql-5.7.43-winx64\data\mysql-bin.000020

转换后的文件,类型自己定

D:\mysql\mysql-5.7.43-winx64\logs\output1.sql

在这里插入图片描述

6.解析转换后的SQL文件

网上说了一堆如何如何来恢复数据的,但是都没有用,起码我没有实现,但是可以通过自己写java解析文件的代码可以恢复删除的数据
代码案例链接

读取文件,把结果写入你要的数据库表里面:

在这里插入图片描述

7.遇到的坑

7.1阿里云等服务器上可以执行binlog相关操作恢复数据吗?

去服务器上去执行相关恢复binlog的命令结果遇到了很多问题,最重要的是在解析binlog日志文件时,需要很大的内存,起码的有4G以前,我的服务器刚好是4G,但也扛不住呀
尤其是执行解析后的binlog日志,需要的服务器内存更大,所以还是老老实实的在自己电脑上搭建一套和服务器上一样版本的MYSQL,然后恢复数据吧,

亲测有效。

我恢复的数据量大概是300多万

解析的binlog日志文件太大了,建议在自己电脑上通过代码解析
在这里插入图片描述

7.2MYSQL5.7遇到的坑

(1)以前windows电脑上安装的是MYSQL8版本,卸载的时候,没有卸载干净,通过清除注册表相关mysql信息,然后电脑重启在重新安装mysql就好了
当出现以下截图的,就证明你的mysql安装时OK的
在这里插入图片描述

我把我mysql的环境变量配置发一下

MYSQL_HOME

D:\mysql\mysql-5.7.43-winx64
在这里插入图片描述
%MYSQL_HOME%\bin
在这里插入图片描述

7.3binlog的配置无效

这个最烦人,不晓得是那个原因,我也配置了my.ini里面的binlog,但是重启mysql后binlog就是打不开
最终用了一行命令解决了:
上面第四点有说(这个是临时启动mysql哈,中断了mysql就停止了,所以一般我都是在运行中)

– 启动mysql

mysqld --defaults-file="D:\mysql\mysql-5.7.43-winx64\bin\my.ini" --log-bin=mysql-bin --server-id=1

在这里插入图片描述

详情可查看我的文档:
【腾讯文档】使用mysql的binlog进行数据恢复

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

官方解决 maven 上传jar包到中央仓库401

目录 目录背景:报错现象一句话解决一句话原因问题描述前车之鉴:尝试无果的记录尝试1:询问 GPT 未果尝试2:搜索引擎未果 正确原因分析:佐证 解决方案(三步完成):1. 打开 sonatype2. 生…

MacOS设备远程登录配置结合内网穿透实现异地ssh远程连接

文章目录 前言1. MacOS打开远程登录2. 局域网内测试ssh远程3. 公网ssh远程连接MacOS3.1 MacOS安装配置cpolar3.2 获取ssh隧道公网地址3.3 测试公网ssh远程连接MacOS 4. 配置公网固定TCP地址4.1 保留一个固定TCP端口地址4.2 配置固定TCP端口地址 5. 使用固定TCP端口地址ssh远程 …

【C++】类和对象(四)拷贝构造、赋值运算符重载

文章目录 四、拷贝构造函数干嘛的?写拷贝构造函数的注意事项正确写法 不显示定义拷贝构造函数的情况浅拷贝:one:示例:内置类型:two:示例:自定义类型一个提问 深拷贝 五、赋值运算符重载运算符重载函数原型注意调用时的两种书写方式完整实现代…

Ant design Vue 表格中显示不同的状态(多条件显示)

比如:后端一个字段有多种状态: 那么后端接口会返回:0 或者 1 或者 2 其中一个,前端需要展示的是对应的文字,像简单的只有两个状态的可以直接在列里面操作: {title: 状态,dataIndex: usable,customRender: …

国产测温速度快且功耗低的温度传感芯片MY18E20可Pin-Pin替换DS18B20

MY18E20是一款国产高精度可编程的数字模拟混合信号温度传感芯片;感温原理基于CMOS半导体PN节温度与带隙电压的特性关系,经过小信号放大、模数转换、数字校准补偿后,数字总线输出,具有精度高、一致性好、测温快、功耗低、可编程配置…

剖析影响大米码垛机性能的关键因素

在现代化粮食加工产业链中,大米码垛机以其高效、精准的自动化操作,成为提升生产效率、降低劳动强度的得力助手。然而,要想充分发挥大米码垛机的性能优势,我们必须深入了解影响其性能的关键因素。星派将深入剖析这些关键因素&#…

1.XSS-反射型(get)

反射型XSS或不持久型XSS 含义&#xff1a;交互的数据一般不会被存在在数据库里面,只是简单的把用户输入的数据反射给浏览器&#xff0c;一次性&#xff0c;所见即所得。 进行测试一下页面是否存在xss漏洞&#xff0c;进行测试一下 "<>6666输入一些字符或者符号&am…

YOLOv10改进 | Neck | 添加双向特征金字塔BiFPN【含二次独家创新】

&#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a;《YOLOv8改进有效涨点》专栏介绍 & 专栏目录 | 目前已有40篇内容&#xff0c;内含各种Head检测头、损失函数Loss、B…

【面试干货】Java的基础类型和字节大小

【面试干货】Java的基础类型和字节大小 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java编程语言中&#xff0c;有八种基本数据类型&#xff0c;它们分别是&#xff1a;布尔型&#xff08;boolean&#xff09;、字节型&#xff08;byt…

前端架构(含演进历程、设计内容、AI辅助设计、架构演进历程)

前端架构的演进历程 前端架构的设计内容 技术选型(库、工具、标准规范、性能、安全、扩展性 )设计模式及代码组织(模块化、分层架构、数据结构)构建与部署(性能优化、自动化、集成、测试) 项目体量 小型项目&#xff1a;对于小型项目&#xff0c;前端架构需要关注模块化、组件…

可视化大屏开发涉及到的8大技术栈,收藏起来不迷路。

可视化大屏开发设计涉及到的技术栈包括&#xff1a; 前端开发技术&#xff1a; HTML、CSS、JavaScript、TypeScript等&#xff0c;用于构建用户界面和实现交互效果。 数据可视化库&#xff1a; 如D3.js、ECharts、Highcharts等&#xff0c;用于将数据以图表、地图、仪表盘等…

Hibernate 框架进行对象关系映射(ORM)

Hibernate是一个广泛使用的Java对象关系映射&#xff08;ORM&#xff09;框架&#xff0c;它通过将Java类与数据库表关联起来&#xff0c;使得开发人员可以使用面向对象的编程方式进行数据库操作。Hibernate的主要目标是消除冗长的JDBC代码和手动处理SQL的需求&#xff0c;从而…

在C#中对 JSON进行序列化和反序列化处理

概述&#xff1a;在现代软件开发领域&#xff0c;不同系统和平台之间的数据交换是不可或缺的方面。JSON&#xff08;JavaScript 对象表示法&#xff09;因其轻量级、人类可读和易于解析的特性而成为一种无处不在的数据格式。使用 C# &#x1f680;编程的 JSON 序列化和反序列化…

C# 语言在AGI 赛道上能做什么

自从2022年11月OpenAI正式对外发布ChatGPT依赖&#xff0c;AGI 这条赛道上就挤满了重量级的选手&#xff0c;各大头部公司纷纷下场布局。原本就在机器学习、深度学习领域占据No.1的Python语言更是继续稳固了自己AI一哥的位置。凭借着Microsoft 和 OpenAI 长期以来一直是紧密相连…

团队管理五个基本法则,帮你打造高效团队

团队管理是一项至关重要的工作&#xff0c;作为一名管理者&#xff0c;应该如何在团队管理中发挥作用呢&#xff1f;以下是团队管理的五个基本原则&#xff0c;它们能够帮助你打造出一个高效协作的团队。 一、以身作则 团队要保持超强的执行力&#xff0c;管理者必须以身作则…

【分类讨论】899. 有序队列

本文涉及知识点 分类讨论 LeetCode899. 有序队列 给定一个字符串 s 和一个整数 k 。你可以从 s 的前 k 个字母中选择一个&#xff0c;并把它加到字符串的末尾。 返回 在应用上述步骤的任意数量的移动后&#xff0c;字典序最小的字符串 。 示例 1&#xff1a; 输入&#xff1…

工业智能网关如何与设备连接?天拓四方

随着工业4.0时代的来临&#xff0c;智能化、自动化已成为工业生产的标配。在这样的背景下&#xff0c;工业智能网关应运而生&#xff0c;成为连接工业设备、实现数据交互与管理的关键节点。本文将阐述工业智能网关如何与设备连接&#xff0c;旨在为读者提供一套清晰、实用的解决…

【node】启动本地打包文件的方式

前言 … 目标 1 初始化node文件 2 将打包文件通过node发布到本地 3 系列文件 【node】创建本地接口 一 node方式 1 在新建一个空的文件夹node 进入空文件夹在,文件夹的地址栏输入cmd回车,会自动跳转到命令行工具里 2 配置初始化文件 在命令行输入命令npm init,生成pac…

CSDN自定义模块全攻略,DIY系统原有样式打造专属个性化主页!

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 &#x1f4af;如何通过HTMLCSS自定义模板diy出自己的个性化csdn主页&#x…

# 消息中间件 RocketMQ 高级功能和源码分析(八)

消息中间件 RocketMQ 高级功能和源码分析&#xff08;八&#xff09; 一、消息中间件 RocketMQ 源码分析&#xff1a;实时更新消息消费队列与索引文件流程说明 1、实时更新消息消费队列与索引文件 消息消费队文件、消息属性索引文件都是基于 CommitLog 文件构建的&#xff0…