使用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进行数据恢复

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

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

相关文章

Docker部署私有仓库(registryHarbor)

简介Docker Hub 官方仓库 在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目push到公有仓库进行管理…

讲座学习截图——《CAD/CAE/CAM几何引擎-软件概述》(一)

目录 引出CAD/CAE/CAM几何引擎-软件概述 郝建兵CADCAECAM 几何模型内核ACIS 两个老大之一Open CascadeParasolid 两个老大之一Autodesk的内核 总结其他自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自定义信号重载带参数的按钮触发信号触发信号拓展 lambda表达式…

双目相机测距原理

一、普通双目相机测距原理 普通双目相机具有如下特点:左右两个相机位于同一平面(光轴平行),且相机参数(焦距f)一致。其原理图如下: 如图所示,P点为相应的物体位置,CL和C…

【等保】网络安全等级保护(等保2.0PPT)

等保2.0(网络安全等级保护基本要求的第二代标准)的推出和实施,是基于多方面的考虑和需求。以下是实施等保2.0的主要原因: 加强网络安全保护: 随着网络技术的不断发展和网络威胁的不断增加,传统的网络安全保…

2024年广西三支一扶报名详细流程(附报名照处理流程)​

2024年广西将招募1650名高校毕业生到基层从事支农、支医、支教和帮扶乡村振兴工作(简称“三支一扶”)。 招募对象为全日制普通高校应届及择业期内2022年至2024年毕业的全日制普通高校毕业生。 ➡️招募条件。 1.具有全日制大专(含高职高专&am…

B端系统:配置页面如何设计,这可是用户体验的关键的关键。

提升配置页面体验的十大原则 设计B端系统的配置页面时,用户体验确实是非常关键的。以下是一些设计原则和建议,可以帮助提高配置页面的用户体验: 简洁明了:配置页面应该尽量简洁明了,避免过多的复杂选项和信息。使用清…

【代码阅读】SSC:Semantic Scan Context for Large-Scale Place Recognition

一、主函数 官方开源的代码提供了四个主函数,其中eval_pair.cpp和eval_top1.cpp是一组,分别用于计算两帧的相似度分数以及一帧点云在所有的51帧点云中相似度最高的25帧的相似度分数。eval_seq.cpp是在eval_top1.cpp的基础上,给了一堆序列&am…

图解布隆过滤器(Bloom Filter)

布隆过滤器详解 布隆过滤器(Bloom Filter)是一种空间效率非常高的随机数据结构,由布隆(Burton Howard Bloom)在1970年提出,用于检验一个元素是否属于一个集合。 具体来说,它可能会错误地认为一个…

Jmeter插件管理器,websocket协议,Jmeter连接数据库,测试报告的查看

目录 1、Jmeter插件管理器 1、Jmeter插件管理器用处:Jmeter发展并产生大量优秀的插件,比如取样器、性能监控的插件工具等。但要安装这些优秀的插件,需要先安装插件管理器。 2、插件的下载,从Availabale Plugins中选择&#xff…

达梦(DM8)数据库表空间的备份与还原(联机备份) 四

一、表空间的备份 1、备份表空间的命令操作 backup tablespace main backupset /home/dmdba/dmdata/DAMENG/bak/full_back_01 ; 2、检查表空间的备份文件 select sf_bakset_check(disk,/home/dmdba/dmdata/DAMENG/bak/full_back_01); 二、表空间的还原 1、修改表空间位脱机…

AI播客下载:Edge of AI (AI最新应用场景和发展趋势)

Edge of AI Podcast 是一个探讨人工智能(AI)最新应用和发展的播客。该播客由Ron Levy主持,他于2023年8月9日接任新主持人。每个节目都会邀请专家分享他们在AI领域的见解和经验,探索最新的应用场景和发展趋势。例如,在第…

PointCloudLib 法线微分算法(Don)分割点云 C++版本

0.实现效果 原始点云 不同尺度上计算法向量 计算出don特征量,并以颜色显示在点云上 可以看出平面中心的点 不涉及到周围点变化的点 特征量比较低,以红色表示 边缘过渡剧烈的点,特征量比较高,以蓝色表示 以Don算法特征量来作为阈值分割点云,可以分割出剧烈变化的点云 欧…

国标GB28181视频汇聚平台EasyCVR设备展示数量和显示条数不符的原因排查与解决

国标GB28181/GA/T1400协议/安防综合管理系统EasyCVR视频汇聚平台能在复杂的网络环境中,将前端设备统一集中接入与汇聚管理。智慧安防/视频存储/视频监控/视频汇聚EasyCVR平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级…

Django教程(002):模板语法的使用

目录 1 字符串2 列表3 字典4 列表中是字典5 if语句6 案例:使用爬虫爬取联通新闻并在页面渲染 模板语法本质上:在HTML中写一些占位符,由数据对这些占位符进行替换和处理。模板语法主要是方便对方法返回的数据在前端进行渲染,这些数…

【Proteus仿真】【Arduino单片机】寻迹避障蓝牙遥控小车

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使LCD1602液晶,L298电机,直流电机,HC05/06蓝牙模块,HCSR04超声波,红外寻迹模块等。 主…

C++初学者指南-2.输入和输出---命令行参数

C初学者指南-2.输入和输出—命令行参数 文章目录 C初学者指南-2.输入和输出---命令行参数1.这是什么&为什么这样?2.如何在C中访问3.转换为std::string、int......4.字符串到数字的转换函数5.命令行参数解析库 1.这是什么&为什么这样? 程序调用后…

说说 SSL 的错误认识和不足之处

最近明月在学习折腾 LNMP 期间无意中建了一个 Typecho 的博客小站,近一周的折腾下来,收获真的不少,致使兴趣也越来越浓了,在升级 LNMP 的时候捎带手的给这个 Typecho 博客也启用了 SSL。并且开启了 memcached 和 OPcache 优化加速…

C++在VS2022开发Windows窗口程序1:第一个win窗口程序

Windows操作系统是由微软公司开发和维护的一系列图形化操作系统的统称。Windows操作系统主要用于个人计算机、笔记本电脑、平板电脑、服务器等设备上。Windows起源于Microsoft-DOS模拟环境,相比于DOS的指令化模式,Windows采用图形化的模式,因…

OkHttp框架源码深度剖析【Android热门框架分析第一弹】

OkHttp介绍 OkHttp是当下Android使用最频繁的网络请求框架,由Square公司开源。Google在Android4.4以后开始将源码中的HttpURLConnection底层实现替换为OKHttp,同时现在流行的Retrofit框架底层同样是使用OKHttp的。 源码传送门 优点: 支持Http1、Http…

[保姆级教程]uniapp设置字体引入字体格式

文章目录 在 UniApp 中设置和引入自定义字体(如 .ttf、.woff、.woff2 等格式)通常涉及几个步骤。 准备字体文件: 首先,你需要有字体文件。这些文件通常以 .ttf、.woff 或 .woff2 格式提供。确保有权使用这些字体,并遵守…