MySql教程

MySQL误删数据后,查找操作日志并恢复数据

本文主要是介绍MySQL误删数据后,查找操作日志并恢复数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

有时候直接操作数据库,可能会出现误删除一些数据的情况,比如删了某个表中某一行数据,事后发现该条数据是误删的,还需要恢复,但是又不太记得具体每个字段原来的数据是什么了,只能要查到之前删掉的数据每个字段值都是什么,才能恢复数据,这时候,就需要查找操作日志,找到之前做的删除操作,把数据重新恢复。

找到日志文件

1. 首先,要找到mysql的日志文件存放在服务器的哪个路径。可以用以下命令来找到日志所在:

 截取指定时间段的log

2. 去数据库所在服务器,找到所在时间段的log(误删数据的那个时间段),记住文件路径和名字:

 

 3. 进入到数据库安装路径的bin路径下

 

  4. 使用如下命令,拿出对应时间段的log:

mysqlbinlog --no-defaults --database=XXX --start-datetime="2021-06-22 09:18:00" --stop-datetime="2021-06-22 09:40:00" /data/mysql/binlogs/mysql-bin.000027 | grep jiraissue > jira_opt.txt

上面命令中, --database=XXX 填写自己的库名,grep jiraissue > jira_opt.txt 是做下初步筛查,比如我知道自己是误删除的 jiraissue这个表的数据,就只把这些相关的数据搜出来,放到自定的jira_opt.txt文本文件中。

5. 打开txt文件,根据起止时间,找一个标志点:

导出误操作的SQL

6. 运行如下命令,导出SQL语句:

mysqlbinlog --no-defaults --base64-output=DECODE-ROWS -v --start-position=970222536 --stop-position=973499062 --database=jiradb /data/mysql/binlogs/mysql-bin.000027 > restore11.sql

 7. 从导出的SQL语句中,查看自己删除的那条数据

反写SQL

 8. binlog2sql可以将binlog进行反向解析(可自行搜索方法)。

或者数据量不大的话,直接自己反写一下,在SQL执行即可。

 

这篇关于MySQL误删数据后,查找操作日志并恢复数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!