积跬步 行千里 穿花摇裤

Windows下通过mysqlbinlog恢复误删数据

首先mysql需要开启binlog功能,这是一切的前提。如何开启呢,找到对应数据库的my.ini文件,在[mysqld]下面添加一行 log-bin = mysql-bin ,然后重启mysql服务,就可以了,如下图

 

 

 

生成后的log日志如图

 

 

 

下面开始恢复操作,先通过命令行或者第三方软件登录mysql数据库,这里使用了navicat,登录后sql执行语句

show binlog events in ‘mysql-bin.0000xx’; 用于列出该binlog日志的内容,这里以上图中的mysql-bin.000048为例,列出后如下图,会看到该日志时间的所有执行的sql语句

 

 

 

查找delete或drop记录,最终发现在pos 147723315发生了DROP导致数据丢失,

 

 

 

这时,开始通过命令行将该pos id前的所以数据导出准备恢复数据,运行命令

mysqlbinlog –database=数据库名称 –start-position=xxx –stop-position=147723315 mysql-bin.000048 > d:\\test1.sql

这样在DROP前的sql语句均已经导出,再通过命令行登录mysql,执行source d://test1.sql 即可恢复数据,自此数据已经恢复完毕。

注意,binlog为操作日志,也是增量数据,需根据实际时间来进行恢复操作,如有多个binlog需要恢复需逐一导出,然后依次导入。

赞(0)
未经允许不得转载:花摇裤 » Windows下通过mysqlbinlog恢复误删数据
分享到: 更多 (0)