查看所有binlog日志文件列表:
show master logs;
查看正在写入的binlog文件:
show master status;
创建表并且新增如下数据
删除一条数据:
delete from t1 where id = 3;
删除整个表:
delete from t1;
查看正在写入的binlog日志,结果发现这个日志文件中只能恢复id=2和id=3的数据,所以要恢复id=1的数据需要到mysql-bin.000003中,这里我先在mysql-bin.000004中恢复id=2和3的数据
show binlog events in 'mysql-bin.000004';
我这里用的是docker,所以进入到mysql容器
通过位置点恢复:
/usr/bin/mysqlbinlog --no-defaults --start-position=4 --stop-position=1163 /var/lib/mysql/mysql-bin.000004 | /usr/bin/mysql -uroot -p1234
查看mysql-bin.000003的日志,发现要恢复的数据在这个位置:
show binlog events in 'mysql-bin.000003';
到mysql容器中执行:
/usr/bin/mysqlbinlog --no-defaults --start-position=3593 --stop-position=3803 /var/lib/mysql/mysql-bin.000003 | /usr/bin/mysql -uroot -p1234
数据恢复成功!