mysqlbinlog工作中最常用的功能可能就是解析binlog了,写成脚本,一次可以解析多个,今天玩玩mysqlbinlog恢复数据的用法.
1,单个binlog恢复数据。
先看看test库下t1表的数据情景,不小心误删数据。
现在使用mysqlbinlog工具试着恢复数据:
首先确认目前写的binlog是mysql-bin.000001
恢复过程:
首先分析应该恢复到数据删除前的位置,即1590:
发生错误,因为test库已经存在,所以不能再次创建,修改命令:
表t1已经存在,看来创建表这一步也要跳过去,再来恢复:
mysqlbinlog --skip-gtids=true --start-position=801 --stop-position=1590 mysql-bin.000001 |mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
并且去库里查询数据:
mysql> select * from t1;
+------+--------+
| id | name |
+------+--------+
| 1 | 张三 |
| 2 | 李四 |
| 3 | 王五 |
+------+--------+
3 rows in set (0.00 sec)