时间:2021-07-01 10:21:17 帮助过:26人阅读
然后执行下flashback mysqlbinlog -vv mysql-bin.000004 -B,然后就会发现
### DELETE FROM `test`.`frame_ou` ### WHERE ### @ouguid=111 /* VARSTRING(50) meta=50 nullable=0 is_null=0 */ ### @ouname=‘组织部‘ /* VARSTRING(50) meta=20 nullable=1 is_null=0 */ ### @oulevel=1 /* SHORTINT meta=0 nullable=1 is_null=0 */
同理,delete操作将会被转换为insert,update被转换为反向的update;若在一个事务中既有insert、update、delete语句,通过使用-B参数后,不仅三种DML语句完成了逆向转换,并且语句顺序也会发生颠倒。
在binlog中找到误操作的pos变化区间后,使用mysqlbinlog -B 恢复:
# mysqlbinlog -B --start-position=431 --stop-position=509 mysql-bin.000004 | mysql -uroot -p
注意事项:
1) binlog_format=row
2) 只支持insert、update、delete
3) 不支持drop 、truncate、alter等DDL语句
关于MySql数据库误操作数据找回的办法
标签:版本 ddl nlog 没有 并且 let drop 数据库恢复 自学