简单粗暴通过 Binlog 日志来恢复 MySQL 数据
引言#
Binlog 日志的主要作用:
1、增量备份。
2、主从复制。
操作步骤#
1、登录 MySQL -> 执行 show variables like '%log_bin%'; 查询 binlog 状态。
提示: log_bin => on 说明已经开始 binlog。
2、准备测试数据
Copy// 创建 `test` 数据库CREATE DATABASE `test`;// 创建 `user` 数据表CREATE TABLE `user` ( `id` int(11) NOT NULL, `name` varchar(25) DEFAULT NULL, `age` int(4) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;// 插入测试数据BEGIN;INSERT INTO `user` VALUES (1, 'liuyi', 20);INSERT INTO `user` VALUES (2, 'chener', 21);INSERT INTO `user` VALUES (3, 'zhangsan', 22);INSERT INTO `user` VALUES (4, 'lisi', 23);INSERT INTO `user` VALUES (5, 'wangwu', 24);COMMIT;
3、备份数据
4、备份数据之后,执行 flush logs 重新生成一个 binlog 日志,用来记录被备份之后的操作。
5、执行更新操作,将 ID 为 5 的记录 age 修改成 30。
6、由于误删除,将数据表 user 删除掉了。
7、开始将之前的备份数据恢复到数据库。
8、但是,我们发现之前的更新的数据已经丢失了。
9、查询出 binlog 日志 binllog.000002。
10、找到更新操作的 position (位置点)。
11、使用 binlog 进行数据恢复。
12、再次查看数据,已经将数据恢复了。










