mysql通过binlog日志恢复误删数据

1、先查看binlog功能是否开启

show variables like '%log_bin%';

在这里插入图片描述
log_bin为ON说明可以使用binlog恢复,如果为OFF说明没有开启binlog。

2、删除部分数据做测试

在这里插入图片描述
在这里插入图片描述

3、查找binlog文件位置

show variables like '%datadir%';

在这里插入图片描述

cd /var/lib/mysqlls -l

删除数据时间是在文件154与153之间,所以删除操作应在154文件中
在这里插入图片描述

4、解析日志

mysqlbinlog命令解析日志存入新文件

mysqlbinlog --base64-output=decode-rows -v --database=DBName --start-datetime="2023-08-21 16:50:00" --stop-datetime="2023-08-21 17:05:00" /var/lib/mysql/mysql-bin.000154 > mysqllog-154.sql

在这里插入图片描述
mysqlbinlog 命令的参数说明

--base64-output=decode-rows //数据转换正常的字符,如果不设置这个参数将显示base64的数据
--database=DBName //数据库名(一个mysql数据库比较多,指定方便恢复)
--start-datetime=恢复起始时间
--stop-datetime=恢复结束时间
/var/lib/mysql/mysql-bin_copy.000154 //为数据恢复的日志文件
mysqllog-154.sql//恢复以后我们需要的文件名

sz命令下载文件到本地
在这里插入图片描述

在文件中找到了detele语句

在这里插入图片描述

5、语句转换

把mysqllog-154.sql中的DELETE转换为Insert语句,使用以下命令:

cat mysqllog-154.sql | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/;INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@17.*),/\1;/g' | sed 's/@1=//g'| sed 's/@[1-9]=/,/g' | sed 's/@[1-9][0-9]=/,/g' > mysqlOK.sql

在这里插入图片描述
打开mysqlOK.sql文件

在这里插入图片描述
6、数据恢复
执行sql文件,即可将删除数据恢复:

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

redis数据类型详解+实例

redis中的数据类型: string,list, set, zset, hash,bitmaps, hyperloglog, gepspatial 目录 一、 String 二、List 三、Set 四、Zset 五、Hash 六、Bitmaps 七、Hyperloglog 八、Gepspatial 一、 String redis最基本的数据类型,一个…

微信小程序使用云存储和Markdown开发页面

最近想在一个小程序里加入一个使用指南的页面,考虑到数据存储和减少页面的开发工作量,决定尝试在云存储里上传Markdown文件,微信小程序端负责解析和渲染。小程序端使用到一个库Towxml。 Towxml Towxml是一个可将HTML、Markdown转为微信小程…

一体全栈、开箱即用!麒麟信安与灵雀云携手打造“操作系统+云平台”联合解决方案

近日麒麟信安与北京凌云雀科技有限公司(以下简称“灵雀云”)开展生态合作,共同完成了灵雀云企业级全栈云原生平台ACPV3与麒麟信安操作系统V3等系列产品的兼容性认证测试。基于双方产品兼容性良好、稳定运行、性能表现卓越,麒麟信安…

Java实现钉钉企业内部应用机器和自定义机器人发送消息

前言 公司让写一个服务监控的功能,当监测到服务停止时,向钉钉群里推送报警信息。之前大概看到钉钉的开放平台的API文档,好像能群发消息的只有机器人。 钉钉开放平台目前提供三种机器人: 企业内部应用机器人 群模板机器人 自定义机器人 本来向用自己比较熟悉的自定义机器人…

PHP自己的框架实现操作成功失败跳转(完善篇四)

1、实现效果,操作成功后失败成功自动跳转 2、创建操作成功失败跳转方法CrlBase.php /**成功后跳转*跳转地址$url* 跳转显示信息$msg* 等待时间$wait* 是否自动跳转$jump*/protected function ok($urlNULL,$msg操作成功,$wait3,$jump1){$code1;include KJ_CORE./tp…

【快速解决方案】浏览器的安全策略不允许通过 file:// 协议直接加载外部文件(最省事的方法)

目录 问题摘要 解决办法 检验结果 问题摘要 Failed to load resource: net::ERR_FILE_NOT_FOUND🌈 Cute Code Editor 🌈.html:162 Fetch API cannot load file:///D:/%E6%A1%8C%E9%9D%A2/%E4%B8%83%E5%A4%95%E5%BF%AB%E4%B9%90/index.txt. URL scheme …

Spring Boot

前言 什么是Spring Boot?为什么要学Spring Boot? Spring 的诞⽣是为了简化Java 程序的开发的,⽽Spring Boot 的诞⽣是为了简化Spring 程序开发 的。Spring就像汽车,相比以前人只能其自行车走路,汽车可以帮助人们更快…

C# WPF ListBox 动态显示图片

前言 最近在和其他软件联合做一个本地图片选择传输功能,为此希望图片能够有序的呈现在客户端,简单的实现了一下功能,通过Mvvm模式进行呈现,过程简单通俗,话不多说直接上图。 处理过程 前台代码 你只需要粘贴到你的前台…

生物识别技术与身份认证:探讨生物识别技术在强化身份认证和访问控制方面的应用

第一章:引言 在数字化时代,随着信息技术的飞速发展,身份认证和访问控制变得越来越重要。传统的用户名和密码方式逐渐暴露出安全性不足的问题,为此,生物识别技术应运而生。生物识别技术利用人体生物特征来识别个体身份…

第9步---MySQL的索引和存储引擎

第9步---MySQL的索引和存储引擎 1.索引 1.1分类 索引可以快速的找出具有特定值的行。不用从头开始进行寻找了。 类别 hash和btree hash 根据字段值生生成一个hash的值 快速的进行定位到对应的行的值 可能会出现相同的值,找到对应的空间会出现对应的值 btree树…

LTMC S/4HANA 2022 – 迁移您的数据

翻译一篇,估计很少人用过这个LTMC功能,更不用说,LTMOM了。一个还没开始用已经被弃用的事务代码: 在这篇博文中,我将解释如何在 S/4HANA 2022 版本中通过“迁移您的数据”应用程序逐步执行数据迁移。如您所知&#xff0…

5.7.webrtc线程的启动与运行

那在上一节课中呢?我向你介绍了web rtc的三大线程,包括了信令线程,工作线程以及网络线程。那同时呢,我们知道了web rtc 3大线程创建的位置以及运行的时机。 对吧,那么今天呢?我们再继续深入了解一下&#…

Redis分布式缓存

分布式缓存 -- 基于Redis集群解决单机Redis存在的问题 单机的Redis存在四大问题: 1.Redis持久化 Redis有两种持久化方案: RDB持久化 AOF持久化 1.1.RDB持久化 RDB全称Redis Database Backup file(Redis数据备份文件)&#x…

Certify The Web (IIS)

一、简介 Certify The Web 适用于 Windows的SSL 证书管理器用户界面,与所有 ACME v2 CA 兼容,为您的 IIS/Windows 服务器轻松地安装和自动更新来自 Letencrypt.org 和其他 ACME 证书授权机构的免费 SSL/TLS 证书,设置 https 从未如此简单。 …

JSON的处理

1、JSON JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。 它是基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写&#…

[PyTorch][chapter 49][创建自己的数据集 1]

前言: 后面几章主要利用DataSet 创建自己的数据集,实现建模, 训练,迁移等功能。 目录: pokemon 数据集深度学习工程步骤 一 pokemon 数据集介绍 1.1 pokemon: 数据集地址: 百度网盘路径: https://pan.baidu.com/s/1…

二、8.系统调用、可变参数和堆内存管理

系统调用:让用户进程申请操作系统的帮助 一个系统功能调用分为两部分, 一部分是暴露给用户进程的接口函数,它属于用户空间,此部分只是用户进程使用系统调用的途径,只负责发需求。另一部分是与之对应的内核具体实现&am…

C++day1(笔记整理)

一、Xmind整理&#xff1a; 二、上课笔记整理&#xff1a; 1.第一个c程序&#xff1a;hello world #include <iostream> //#:预处理标识符 //<iostream>:输入输出流类所在的头文件 //istream:输入流类 //ostream:输出流类using namespace std; //std&#x…

Goland 注释时自动在注释符号后添加空格

不得不说 JetBrains 旗下的 IDE 都好用&#xff0c;而且对于注释这块&#xff0c;使用 Ctrl / 进行注释的时候&#xff0c;大多会在每个注释符号后统一添加一个空格&#xff0c;比如 PyCharm 和 RubeMine 等。 # PyCharm # print("hello world") # RubyMine # req…

从Web 2.0到Web 3.0,互联网有哪些变革?

文章目录 Web 2.0时代&#xff1a;用户参与和社交互动Web 3.0时代&#xff1a;语义化和智能化影响和展望 &#x1f389;欢迎来到Java学习路线专栏~从Web 2.0到Web 3.0&#xff0c;互联网有哪些变革&#xff1f; ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#x…