如何通过binlog恢复数据

什么是binlog

binlog主要用于主从复制,恢复数据

如何查看binlog是否开启?如何开启

如何通过binlog恢复数据

说明此时是关闭的状态,那么如何开启binlog呢?
如何通过binlog恢复数据
server_id=2
log_bin = mysql-bin
binlog_format = statement
expire_logs_days = 30
重启mysql
如何通过binlog恢复数据
如何通过binlog恢复数据

binlog有几种格式

1、statement 当前使用的是这个
2、row 不配置默认用的是row mysql 5.7以上
3、mixed

如何通过mysql中的binlog恢复数据

我们先来创建一个表
当前状态
如何通过binlog恢复数据
当前日志记录的其实位置
如何通过binlog恢复数据
如何通过binlog恢复数据
如何通过binlog恢复数据
如何通过binlog恢复数据
如何通过binlog恢复数据

如何通过binlog恢复数据

– 建表
create table ccc(id int, title varchar(100));
– 插入初始化数据
insert into ccc(id, title) values (1, ‘测试1’);
insert into ccc(id, title) values (2, ‘测试2’);
insert into ccc(id, title) values (3, ‘测试3’);
– 更新/删除
update ccc set title=‘修改’ where id=2;

如何通过binlog恢复数据
如何通过binlog恢复数据

我这个时候假如我误操作删除了表
drop table ccc;
如何通过binlog恢复数据
如何通过binlog恢复数据
mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.000005

如何通过binlog恢复数据
如何通过binlog恢复数据
如何通过binlog恢复数据

执行mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.000005 --start-position=154 --stop-position=1607 | mysql -uroot -proot wly_test1
如何通过binlog恢复数据

此时已经恢复完成
如何通过binlog恢复数据