相关文章推荐

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

找到日志文件

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 误删 数据 ,你可以尝试以下几种方法来 恢复 它们: 1. 利用备份进行 恢复 :如果你有备份 数据 库,你可以从备份中 恢复 误删 数据 。你可以使用 MySQL 自带的 mysql dump 工具来备份 数据 库。 2. 利用 binlog 进行 恢复 MySQL 中的 binlog 记录了所有 数据 库的修改 操作 ,包括删除 数据 。你可以使用 mysql binlog 工具来查看 binlog,找到 误删 数据 操作 ,然后执行相反的 操作 恢复 数据 。 3. 使用第三方工具进行 恢复 :有很多第三方工具可以用来 恢复 误删 数据 ,比如:Undelete MySQL 、Recover MySQL 等。你可以搜索并选择一个适合的工具来进行 数据 恢复 。 需要注意的是,在进行 数据 恢复 的过程中,你需要确保没有新的 数据 写入到 数据 库中,否则你 恢复 数据 可能不完整或者不正确。另外, 数据 恢复 工作需要谨慎 操作 ,以免造成更大的损失。
 
推荐文章