MySQL通过binlog恢复数据

1.背景

MySQL一旦误删数据库之后恢复数据很麻烦,这里记录一下艰辛的恢复过程。

2.方法

2.1首先在MySQL中查看是否打开bin目录

mysql> show variables like 'log_%';

MySQL通过binlog恢复数据_第1张图片

这里可以看到log_bin是ON的状态,恢复有望。

2.2显示当前主分支的状态

mysql> show master status;

MySQL通过binlog恢复数据_第2张图片

可以看到binlog文件已经排到17号了。

2.3显示mysql-bin.000001文件

mysql> show binlog events in 'mysql-bin.000001';

MySQL通过binlog恢复数据_第3张图片

2.4在MySQL的data目录下打开cmd,选择开始节点和结束节点的数据,并且存放到E盘下的update.sql中

mysqlbinlog --no-defaults -d managementcontrol --start-position=250692027 --stop-position=250692160 mysql-bin.000008 > e:\\update.sql

MySQL通过binlog恢复数据_第4张图片

此处可能报错:mysqlbinlog不是内部或外部命令,原因是MySQL安装目录bin目录下mysqlbinlog.exe缺失,复制一个exe即可。--no-defaults是为了防止报错:不认识UTF-8编码。-d testdb 是为了只更新跟testdb相关的数据。

2.5在MySQL中导入数据,执行以下命令即可

mysql> source e:update.sql;

 

MySQL通过binlog恢复数据_第5张图片

你可能感兴趣的:(MySQL)