mysql抛出异常后如何回滚_MySQL被误操作的更新或删除后如何回滚

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

打开mysql默认的配置文件地址

#vim /etc/my.cnf

img_57e09fba4b0a1.png

如果没有开启,那么比较遗憾,我暂时还没找到其他回滚的方法。

如果不是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文件导出来分析

img_57e0a2b8b4e43.png

找到对应的update或delete语句,可以看到,虽然我们执行的是一个update语句,而实际log中记录的是针对每一条数据都会出现这么一条语句,而且这条语句包含了修改或删除前的数据,那么后面我们就知道该如何还原了吧?

如图,我改的是第18个字段。目前我还没有做自动生成还原语句的脚本,如果小伙伴们有兴趣自己做对应的脚本,可以回复到下方,供大家参考,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值