我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL 恢复误删数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL 恢复误删数据

文章目录


MySQL 恢复误删数据,针对 window 和 Linux 均适用,只需要找到对应的 binlog 目录文件,默认就是 MySQL 安装目录下的 data 文件夹

一般误删数据,先停止所有操作,备份数据库

# 备份所有数据库mysqldump -uroot -p123456 --all-databases > /backup/mysqldump/all.db# 恢复数据mysql -uroot -p db_name < /backup/mysqldump/db_name.db
1、查看是否启用 binlog 日志
SHOW VARIABLES LIKE '%log_bin%'

在这里插入图片描述

2、查看所有 binlog 日志
SHOW BINARY LOGS;

在这里插入图片描述

3、查看正在使用的日志
SHOW MASTER STATUS;

在这里插入图片描述

4、查找日志所在文件夹
SHOW VARIABLES LIKE '%datadir%';

在这里插入图片描述

5、log 日志转 sql

使用上面使用的 binlog.000056 文件,先把 该文件复制到其他地方

mysqlbinlog E:\test\result\binlog.000056 > E:\test\result\db.sql

有可能报错
在这里插入图片描述
添加 --no-defaults 参数可以解决,但中文会乱码(使用下面 vbs 或自定义语言实现可解决 乱码问题),一般要加上时间字段转换 sql

mysqlbinlog --no-defaults --base64-output=decode-rows -v --database=oauth --start-datetime="2023-06-01 01:44:00" --stop-datetime="2023-06-01 01:48:00" F:\mysql-8.0.29-winx64\data\binlog.000058 > E:\test\result\db.sql

转换成功如下,可以看到删除 sql 的语句
在这里插入图片描述
接下来只需要将上面的 delete 语句转换为 inert 即可恢复误删数据,如果需要转换的多可以通过代码自定义实现,主要就是将
delete 转 insert

6、delete 转 insert 恢复误删

通过 vbs 脚本转换 sql 语句,当然也可以使用其他的语言,window 执行 vbs 不需要额外的环境,你只需要修改下面 vbs 文件中输入输出文件名以及编码类型即可

'=========================='用VBS实现 MYSQL binglog DELETE 转 INSERT'==========================function replaceregex(patern,str,tagstr)dim regex,matchesset regex=new regExpregex.pattern=paternregex.IgnoreCase=trueregex.global=truematches=regex.replace(str,tagstr)replaceregex=matchesend function'Mysql binlog DELETE转INSERT=========='VBS打开文本文件Set oldStream = CreateObject("ADODB.Stream")oldStream.CharSet = "utf-8"oldStream.Open'binLog 生成的 DELETE 原日志文件'oldStream.LoadFromFile("E:\test\result\db.sql") 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 objectnewStream.WriteText newTextnewStream.SaveToFile "mysqllogOK.sql", 2 'DELETE转成INSERT以后的新的SQL文件名newStream.Close

转换结果如下,自行选择新增恢复数据

在这里插入图片描述

来源地址:https://blog.csdn.net/qq_41538097/article/details/130978911

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL 恢复误删数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL误删数据如何恢复

如果在 MySQL 中误删了数据,可以通过以下几种方式进行数据恢复:从备份中恢复数据:如果你有数据库的备份文件,可以将备份中的数据恢复到数据库中。这是一种非常简单且可靠的方法,但是需要确保备份文件是最新的并且完整的。使用恢复工具:MySQL
2023-10-27

mysql误删数据怎么恢复

mysql误删数据可通过以下步骤恢复:停止数据库服务,防止数据覆盖。若开启binlog日志,可从中提取删除语句,再重新执行后将数据恢复。使用恢复工具修复表文件或恢复事务。从备份中恢复数据,可手动或自动化进行。查看慢查询日志获取删除语句信息。
mysql误删数据怎么恢复
2024-05-16

mysql怎么恢复误删的数据

在MySQL中,如果误删了数据,可以通过以下方法恢复:使用备份文件恢复数据:如果有备份文件,可以将备份文件中的数据恢复到数据库中。首先需要找到最新的备份文件,并将其还原到一个临时数据库中。然后,通过查询和插入操作将需要恢复的数据从临时数据库
mysql怎么恢复误删的数据
2023-10-28

mysql如何恢复误删的数据

如果在MySQL数据库中误删了数据,可以通过以下几种方法来尝试恢复数据:1. 使用备份文件:如果你有数据库的备份文件,可以将备份文件还原到一个新的数据库中,然后从这个新的数据库中导出你需要恢复的数据,再将其导入到原来的数据库中。2. 使用二
2023-08-11

mysql数据误删除如何恢复

如果MySQL数据误删除,可以尝试以下方法恢复:1. 使用备份:如果你有定期备份数据库,可以通过将备份文件还原到误删除之前的状态来恢复数据。2. 使用二进制日志(binary log):MySQL的二进制日志记录了数据库的所有操作,包括删除
2023-10-09

MYSQL Binlog恢复误删数据库详解

对表误删或执行缺少条件的修改 SQL 导致修改了表内其他数据时,我们需要想办法将数据恢复回来。先创建两个测试表 table_1CREATE TABLE `table_1` (`id` int(0) NOT NULL AUTO_INCR
2022-11-18

【MYSQL】误删数据恢复流程说明

误删数据恢复流程说明 项目场景:使用navicat时,不小心误删除几条数据,需要对数据进行恢复 解决方案: 第一步:保证mysql已经开启binlog,查看命令: 如果没有开启binlog,也没有预先生成回滚SQL,那可能真的无法快速回滚
2023-08-17

mysql误删数据后如何快速恢复

这篇文章主要介绍了mysql误删数据后如何快速恢复的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql误删数据后如何快速恢复文章都会有所收获,下面我们一起来看看吧。第一步:保证mysql已经开启binlog
2023-03-02

oracle误删数据怎么恢复

误删 oracle 数据可以使用以下方法恢复:检查回收站。使用闪回查询查看特定时间的数据。使用归档日志进行恢复(需要归档日志已启用)。联系 oracle 支持以寻求高级恢复选项。误删 Oracle 数据的恢复方法Oracle 中误删除数据
oracle误删数据怎么恢复
2024-04-18

oracle数据误删怎么恢复

oracle 中误删的数据可以通过以下步骤恢复:确定已删除数据的表和行。通过运行 recover data 查询来恢复已删除的数据。运行查询确认数据已恢复。注意:如果数据已从撤消段中清除,则无法使用此方法恢复。Oracle 数据误删恢复如
oracle数据误删怎么恢复
2024-04-18

plsql误删数据怎么恢复

如果在PL/SQL中误删了数据,有几种方法可以尝试恢复数据:1. 使用数据库备份:如果你有数据库的备份,可以通过恢复备份文件来恢复误删的数据。恢复数据库需要一些数据库管理技能,建议在恢复之前阅读相关文档或请专业人士协助。2. 使用回滚操作:
2023-10-19

编程热搜

目录