mysql积累--使用mysqlbinlog恢复删除数据

使用mysqlbinlog 恢复删除的数据

参考:https://www.cnblogs.com/DataArt/p/9873256.html
查看所有的bin文件:show master logs;
查看最新的bin文件:show master status;

1. 重新开始写binlog:flush logs;

会新生城一个binlog

2. 先插入一个数据然后再删除

上面两步是制造删除场景,若实际使用请从第三步开始

3. 查看起止position

方法一:mysql> show binlog events in ‘mysql-bin.000067’
mysql积累--使用mysqlbinlog恢复删除数据
方法二:mysqlbinlog --no-defaults /home/work/mysql-bin.000067 > 111.sql
然后vim 111.sql
mysql积累--使用mysqlbinlog恢复删除数据
120~546是插入数据
546~847是误删除的数据

4. 剪切

mysqlbinlog --no-defaults /home/work/mysql-bin.000067 --start-position=120 --stop-position=546 > 11.sql
通过增加参数 –default-character-set = utf8 解决乱码问题 :
mysql -uroot -p123456 highway -v < 000147_0.sql --default-character-set=utf8
若中间掺杂着其他不需要的sql语句,将无用sql语句删除即可

5. 恢复

mysql -uroot -p123456 -v < 11.sql 这样就把120到546的数据恢复了