MySQL被误操作的更新或删除后如何回滚

作者: wencst 分类: Uncategorized,数据库 发布时间: 2016-09-20 10:46 阅读: 3,205 次

首先,需要确认mysql开启了binlog


打开mysql默认的配置文件地址
#vim /etc/my.cnf

如果没有开启,那么比较遗憾,我暂时还没找到其他回滚的方法。
如果不是Row格式的,我也没有试过,查的资料中都是要求开启Row格式。

然后,打开mysql服务器端,输入如下命令:


注意上方图片中datadir的地址,需要先进入此文件夹,否则可能会报文件找不到的错误
# mysqlbinlog  –no-defaults  –start-datetime=’2016-09-19 14:56:00′  –stop-datetime=’2016-09-19 14:57:00′  -vv mysql-bin.000056 > /home/wencst/restore/binlog.txt
注意,时间的起止时间越精确找到的对应误操作语句会更精准

最后,将binlog.txt文件导出来分析



找到对应的update或delete语句,可以看到,虽然我们执行的是一个update语句,而实际log中记录的是针对每一条数据都会出现这么一条语句,而且这条语句包含了修改或删除前的数据,那么后面我们就知道该如何还原了吧?
如图,我改的是第18个字段。目前我还没有做自动生成还原语句的脚本,如果小伙伴们有兴趣自己做对应的脚本,可以回复到下方,供大家参考,谢谢。

如果文章对您有用,扫一下支付宝的红包,不胜感激!

欢迎加入QQ群进行技术交流:656897351(各种技术、招聘、兼职、培训欢迎加入)