MYSQL使用binlog日志恢复数据

本教程目的在于,你的MYSQL采用了binlog日志,且产生了binlog日志文件,使用日志文件恢复数据。

步骤一、找到要恢复数据的binlog文件

怎么找?使用命令:show variables like '%log_bin%';

如下图:这个路径就是你的binlog日志的文件夹

如下图:可能存在好多个 binlog日志文件,例如:binlog.000013

 有些教程里,文件名也可能是这样的:mysql-bin.000001

 

步骤二:把日志文件导出为.sql文件

导出命令有两种,一种根据 事务区间导出,一种根据日期区间导出

事务区间导出命令:

日期区间导出命令:

怎么执行命令呢?不要进入mysql中执行,这个是依赖mysql\bin\mysqlbinlog.exe来运行的。

如下图:

导出后文件格式具体如下:

步骤三、执行导出的恢复文件test.sql

怎么执行命令呢?这个要命令行登录mysql执行。

登录mysql命令:mysql -h localhost -u root -p,输入密码

进入mysql后,切换数据库

等待执行完成。然后就会发现,你的数据回来了。

注意事项:

  • 1、第二步在导出恢复数据test.sql文件时、一定不能在命令中加 --base64-output=decode-rows

 加上后,导出的sql文件执行了也不能恢复。这种导出的更方便我们用来分析,恢复那段时间区间或者事务区间的内容。

下面两种图同一个时间段、同一个事务点的展示如下

加  --base64-output=decode-rows 导出的文件示例:

不加  --base64-output=decode-rows 导出的文件,执行后可恢复数据,示例:

上面两图,

第一张加上--base64-output=decode-rows导出的,我们可以用来分析,决定恢复哪些时间段内的,或者哪些 事务区间段内的。这样就能找到 第二步的 开始时间 结束时间 或者事务区间 的开始事务节点,结束事务节点。

在分析好 区间以后,再次不加--base64-output=decode-rows导出的,用来执行恢复。

  • 2、执行导出命令后,可能有如下提示,可以忽略不用管。

本文链接:https://my.lmcjl.com/post/8093.html

展开阅读全文

4 评论

留下您的评论.