1.查看binlog是否开启

show variables like '%log_bin%';

2.查看数据文件存放路径:bin-log路径

show variables like '%datadir%';

3.找到删除时间段的binlog,翻译为sql

mysqlbinlog --base64-output=decode-rows -v --database=数据库名 --start-datetime="2022-10-19 16:40:00" --stop-datetime="2022-10-19 16:450:00" "D:\Program Files\mysql-5.7.30-winx64\mysqldb\bin.000041" > d:\mysqllog.sql

4.在生成的 mysqllog.sql 文件同路径下 ,生成将delete翻译为insert的sql文件
linux:

cat mysqllog.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' > mysqllogOK.sql

5、windows:
在生成的sql文件同目录下,创建.vbs文件,写入如下内容,并双击执行
'==========================
'用VBS实现 MYSQL binglog DELETE转INSERT
'==========================
function replaceregex(patern,str,tagstr)
dim regex,matches
set regex=new regExp
regex.pattern=patern
regex.IgnoreCase=true
regex.global=true
matches=regex.replace(str,tagstr)
replaceregex=matches
end function

'Mysql binlog DELETE转INSERT==========
'VBS打开文本文件
Set oldStream = CreateObject(“ADODB.Stream”)
oldStream.CharSet = “utf-8”
oldStream.Open
oldStream.LoadFromFile(“mysqllog.sql”) 'binLog生成的DELETE原日志文件
oldText = oldStream.ReadText()
newText=replace(oldText,“### DELETE FROM”, “;INSERT INTO”)
newText=replace(newText,“### WHERE”, “SELECT”)
newText=replace(newText,“###”, “”)
newText=replace(newText,“@1=”, “”)
newText=replaceregex(“@[1-9]=”,newText, “,”)
newText=replaceregex(“@[1-9][0-9]=”,newText, “,”)
oldStream.Close
'VBS保存文件
Set newStream = CreateObject(“ADODB.Stream”)
newStream.Type = 2 'Specify stream type - we want To save text/string data.
newStream.Charset = “utf-8” 'Specify charset For the source text data.
newStream.Open 'Open the stream And write binary data To the object
newStream.WriteText newText
newStream.SaveToFile “mysqllogOK.sql”, 2 'DELETE转成INSERT以后的新的SQL文件名
newStream.Close

6、把mysqllog.sql文件和生成的windows中的.vbs放在同一个文件夹中双击执行生成mysqllogOK.sql文件
7、进入mysqllogOK.sql文件删除其中的delete保留insert再去执行mysqllogOK.sql就成功了
8、如果binlog日志没有开启可以进行开启
linux:

cd /usr/etc/
vim my.cnf

log-bin=mysql-bin # 开启Binlog 一般只需要修改这一行即可
binlog-format=ROW # 设置格式 此行可以不加 命令设置即可 详见下方拓展
server_id=1 # 配置serverID 这一行本来就存在
systemctl restart mysqld #重启mysql

MYSQL误删除DELETE数据找回相关推荐

  1. 恢复oracle中误删除delete的数据、drop掉的表

    oracle误删除数据的恢复方法 学习数据库时,我们只是以学习的态度,考虑如何使用数据库命令语句,并未想过工作中,如果误操作一下,都可能导致无可挽回的损失.当我在工作中真正遇到这些问题时,我开始寻找答 ...

  2. oracle如何根据ID恢复部分数据,三种方法找回Oracle数据库误删除的数据

    三种方法找回Oracle数据库误删除的数据 最新动态来源:点击数:6141更新时间:2018/5/10 有很多朋友都遇到过在操作数据库时误删除某些重要数据的情况,如果数据库没有备份而且数据有十分重要的 ...

  3. Mysql定义DELETE操作触发器,将删除数据存入历史表

    Mysql定义DELETE操作触发器,将删除数据存入历史表 SQL如下: // An highlighted blockDELIMITER $$ CREATE TRIGGER <触发器名称> ...

  4. 误删除文件怎么找回 数据恢复用这些方法

    误删除文件是很多人都会遇到的问题,尤其是在Windows 10系统中,有时候我们不小心按了Shift+Delete或者清空了回收站,就会导致文件永久消失.那么,误删除文件怎么找回呢?本文将介绍四种数据 ...

  5. mysql 恢复delete操作_MySQL 误操作后数据恢复(update,delete忘加where条件)

    在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者D ...

  6. MySQL之误删数据如何处理

    写在前面 在工作中不管是程序bug,运维的失误,等,都有可能导致数据误删除,或者是误操作,此时我们就必须快速的恢复数据,避免对正常业务造成过大的影响,甚至出现事故,本文我们按照如下的几种情况来进行分析 ...

  7. Oracle中误删数据找回方法

    快一个月没写东西了,最近确实有点忙.偶尔一次加班头有点晕居然被我误删了数据,还好只是测试数据,但是也要恢复啊,不然之前的测试不就白费了吗,哈哈.然后就去找了一些相关的恢复误操作的方法,在下面记录下来, ...

  8. SQLServer数据库误删数据找回

    记一次SQLServer数据库误删数据找回 昨天 同事在本机清理数据库表时,连接到了生产机,误删了二十几张表,幸好是晚上加班的时候删除的,生产机上当时是一天一备份,还原备份是最后的策略,最关键的还是要 ...

  9. MySQL 删除表数据,重置自增 id 为 0 的两个方式

    MySQL 删除表数据,重置自增 id 为 0 的两个方式: 1.truncate table table_name; truncate table `user`; 2.delete 配合 alter ...

最新文章

  1. Several ports (8005, 8080, 8009) required by Tomcat v5.5 Server at localhost are already in use.....
  2. 倾情大奉送--Spark入门实战系列
  3. 一本通1655数三角形
  4. Android Wear开发者预览版入门
  5. Android4.0 Launcher 源码分析系列(二)
  6. mailto 附带附件_我和我的朋友如何将附带项目发展为每月$ 17,000的业务
  7. 开机预读快还是不预读快_WIN 7下的超级预读比VISTA要好,改进不少!推荐开启超级预读!...
  8. linux运维高频命令汇总
  9. SQL Server 当表分区遇上唯一约束(转载)
  10. AI学习笔记(十四)CNN之图像分割
  11. Java编程经典10道_10道经典java编程笔试题
  12. 博文视点大讲堂第20期——Windows 7来了
  13. Java SimpleDateFormat格式化时间不准确
  14. Win7下安装Flash低版本
  15. SpringBoot实现JWT保护前后端分离RESTful API
  16. 传统城域网架构遇瓶颈 引入NFV成有效解法
  17. PHP - Redis实现入队出队
  18. 获取全年所有非工作日和工作日的脚本(Python篇)
  19. 信息安全技术 实验3 木马及远程控制技术
  20. Android Jetpack组件 DataStore的使用和简单封装

热门文章

  1. C++ exit用法详解
  2. zjs-my-dary-20220113
  3. 聊聊自学,让你事半功倍的学习网站和工具
  4. 清明自习-部分知识整理
  5. 同时删除多个 Txt 文本文档的前几行
  6. abp修改默认返回格式
  7. IDEA敏感数据检测实践整理
  8. Mysql的收费方式
  9. 【综述】机器视觉中的3D传感器
  10. virt-manager的安装和使用