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’
方法二:mysqlbinlog --no-defaults /home/work/mysql-bin.000067 > 111.sql
然后vim 111.sql
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的数据恢复了