如何通过binlog恢复数据

什么是binlog

binlog主要用于主从复制,恢复数据
在这里插入图片描述

binlog脑图

在这里插入图片描述

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

在这里插入图片描述

说明此时是关闭的状态,那么如何开启binlog呢?
在这里插入图片描述
server_id=2
log_bin = mysql-bin
binlog_format = statement
expire_logs_days = 30
重启mysql
在这里插入图片描述
在这里插入图片描述

binlog有几种格式

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

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

我们先来创建一个表
当前状态
在这里插入图片描述
当前日志记录的其实位置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

– 建表
crete table eee (id.int,c1 varchar(100),c2 varchar(100))
insert into eee(id, c1,c2) values (1, ‘测试1c1’,‘测试c2’);
insert into eee(id, c1,c2) values (1, ‘测试2c1’,‘测试c2’);
insert into eee(id, c1,c2) values (1, ‘测试3c1’,‘测试c2’);
– 更新/删除
update ccc set c2=‘修改’ where id=2;

在这里插入图片描述
在这里插入图片描述

我这个时候假如我误操作删除了表
drop table ccc;
在这里插入图片描述
在这里插入图片描述
mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.000005

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

执行mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.000005 --start-position=154 --stop-position=1607 | mysql -uroot -proot wly_test1
在这里插入图片描述

此时已经恢复完成
在这里插入图片描述

如何使用row格式来恢复数据?
在这里插入图片描述
mysqlbinlog --base64-output=decode-rows -v mysql-bin.000001
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_37509194/article/details/110005619