如何通过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恢复数据
我们先来创建一个表
当前状态
当前日志记录的其实位置
– 建表
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;
我这个时候假如我误操作删除了表
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
此时已经恢复完成