linux下查看mysql二进制日志_通过MYSQL的二进制日志找回误删记录

17270ce95af85a4a2d33846cd5831d99.png

同事在开发时,使用正式数据库测试功能,不小心误删了数据库中的一条数据。幸好数据库有开启Binlog(为了做主从复制),Binlog记录了数据库执行的每条SQL语句,抱着死马当活马医的心态,利用Binlog看能不能找回误删的数据。

数据大概是在14:20左右删除的,首先利用mysqlbinlog命令导出那段时间的日志,执行下面的命令:

mysqlbinlog --start-datetime="2017-10-13 14:15:00" --stop-datetime="2017-10-13 14:25:00" mysql_bin.xxxxxx > data.sql

将14:15至14:25的日志记录导出到data.sql文件中,打开data.sql文件,查找定位到被删除数据的表:

1c8bd3436659a9db5f962919ac616550.png

如上图就是一条SQL语句的执行记录,其中黄色字体部分就是实际执行的SQL语句,语句经过BASE64编码,可以使用-v参数,让mysqlbinlog将执行的语句通过注释的方式显示出来,再使用-base64-output=decode-rows参数让mysqlbinlog把看不懂的BASE64编码隐藏起来,最后执行的命令变成这样:

mysqlbinlog --base64-output=decode-rows -v --start-datetime="2017-10-13 14:15:00" --stop-datetime="2017-10-13 14:25:00" mysql_bin.xxxxxx > data.sql

打开data.sql文件,查找定位到被删除数据的表:

234e8fcc20f53214b7f33e2f6f3cdd7f.png

可以看到执行的删除语句了,而且日志还帮我们把被删除记录的每个字段值都记录下来了,只要复制这些字段的值,就可以恢复被删除的记录了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值