8

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

 3 years ago
source link: https://www.wencst.com/archives/281
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

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

首先,需要确认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(各种技术、招聘、兼职、培训欢迎加入)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK