本教程目的在于,你的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 评论