300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > windows下mysql误删除数据恢复

windows下mysql误删除数据恢复

时间:2021-03-17 17:17:09

相关推荐

windows下mysql误删除数据恢复

1、进入到mysql所在的bin目录

mysql -u root -p -default-character-set=utf8

命令解释:

-default-character-set:设置登录mysql时的编码格式

2、查看是否开启binlog

输入以下命令

show variables like 'log_bin';

显示为on代表已开启

3、查看binlog所在目录

show variables like'log_bin%';

此命令可以查看binlog所在位置

4、查找到最近的日志文件

show binary logs;

查看和自己误删数据最近的文件

5、执行下面命令

mysqlbinlog --base64-output=decode-rows -v --database=test --start-datetime="-01-14 09:00:00" --stop-datetime="-01-14 09:24:00" D:\ProgramData\MySQL\MySQL Server 8.0\Data\LAPTOP-M9PJ7F6N-bin.000148 > mysqllog.sql

命令解释

mysqlbinlog 命令的参数说明--base64-output=decode-rows //数据转换正常的字符,如果不设置这个参数将显示base64的数据--database=DBName //数据库名(一个mysql数据库比较多,指定方便恢复)--start-datetime="-11-26 18:00:00" //恢复起始时间--stop-datetime="-11-26 18:10:00" //恢复结束时间D:\MySQL\Data\mysql-bin_copy.000028 //为数据恢复的日志文件mysqllog.sql //恢复以后我们需要的文件名,在当前mysql的bin目录下面

如果该命令报如下错误,则有可能是登录mysql是没有指定编码格式,按照第一步操作重新登录一下。

6、将生成的mysqllog.sql里面的delete语句转成insert语句

最好是在linux下操作,执行如下命令

cat mysqllog.sql | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/;INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@17.*),/\1;/g' | sed 's/@1=//g'| sed 's/@[1-9]=/,/g' | sed 's/@[1-9][0-9]=/,/g' > mysqllogOK.sql

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。