MySQL误删数据后,查找操作日志并恢复数据
2022/3/21 19:30:42
本文主要是介绍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误删数据后,查找操作日志并恢复数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程