美文网首页
Mysql误删除数据之后的数据恢复

Mysql误删除数据之后的数据恢复

作者: 小丸子的呆地 | 来源:发表于2022-11-25 12:50 被阅读0次

首先查看是否开启了binlog

show variables like '%log_bin%';

image.png

没有开启binlog,就无法使用binlog进行数据找回

查找binlog路径

show variables like '%datadir%';

image.png

找到对应的binlog文件

一般为修改时间最近的文件


image.png

按误操作时间找到对应的binlog记录,并转换为sql

mysqlbinlog --base64-output=decode-rows -v --database=数据库名称 --start-datetime="2022-11-26 11:32:00" --stop-datetime="2022-11-26 11:33:00" "/usr/local/var/mysql/binlog.000026" > /../mysqllog.sql

将文件中DELETE语句转换为INSERT语句

cat mysqllog.sql | sed -n '/###/p' | sed 's/### //g;'| sed 's/DELETE FROM/);INSERT INTO/g;' |sed 's/WHERE/VALUES(/g;' |sed -E 's/(@17.),/\1;/g' | sed 's/@1=//g'| sed 's/@[1-9]=/,/g' | sed 's/@[1-9][0-9]=/,/g' > mysqllogOK.sql
注意这种替换方式,需要对结果文件的开头和结尾进行处理。

将转换好的sql通过文件导入数据库

相关文章

网友评论

      本文标题:Mysql误删除数据之后的数据恢复

      本文链接:https://www.haomeiwen.com/subject/ymmffdtx.html