昨天误将mysql数据表中的数据用delete删除了,没有备份,没有回滚,删除了180855条,删除的正是今天要用的数据,好在今天上午成功恢复😄 ,赶紧记录一下恢复过程!
第一步:查看binlog功能是否开启
show variables like '%log_bin%';
如果log_bin的值为ON,那么就可以恢复,如果为OFF说明没有开启bin_log,那么就不能使用本方法进行恢复
第二步:查看binlog文件存放路径
show variables like '%datadir%';
第三步:从存放路径中找 修改时间为你删除mysql数据的时间的一个文件
我删除数据的时间为16:35左右,再结合文件大小确定应该就是这个文件了(最好再将这个文件备份一份,对备份的这个进行操作)
第四步:通过mysqlbinlog 恢复删除的数据日志记录
打开cmd,进入到此文件所在目录,输入如下命令
mysqlbinlog --base64-output=decode-rows -v DESKTOP-TA3EDSA-bin.000402 > mysqllog.sql
命令解释
mysqlbinlog 命令的参数说明
--base64-output=decode-rows //数据转换正常的字符,如果不设置这个参数将显示base64的数据
DESKTOP-TA3EDSA-bin.000402 //为数据恢复的日志文件
mysqllog.sql //恢复以后我们需要的文件名
等待执行完成,会出现我们命名的sql文件:mysqllog.sql
第五步:sql文件的内容处理
打开输出的sql文件,内容是这样的
需要对文件内容做如下处理:
- 将不需要的内容删除,如文件的首尾段落,只保留delete语句
- 将delete语句转为insert into 语句
处理完之后:
评论区