Mysql数据数据误删怎么办?数据恢复测试

本文旨在为手抖误删数据的同学提供解决办法,强调删数据前要备份。介绍了在数据库中查看恢复条件的命令,如 log_bin 代表开启操作日志等。以 mac 系统为例,说明去 /usr/local/var/mysql 下找近期日志 binlog 进行误删恢复测试。

首先首先首先,本文只是为了做误删恢复测试,给手抖的同学们一个解决办法

切记,删数据之前备份备份备份!!!!!!

下面进入正题:

1、登录数据库键入如下命令,查看恢复条件是否满足:

show variables like '%log_bin%'

结果如下:

log_bin代表开启操作日志

log_bin_basename代表操作日志存放的位置

我是mac系统,所以去/usr/local/var/mysql下找近期的日志binlog

mysqlbinlog --base64-output=decode-rows -v --start-datetime="2019-03-20 00:00:00" /usr/local/var/mysql/binlog.000031 >/Users/liuchaoyong/Desktop/data.sql

 binlog的序号就需要根据个人情况去修改了,这里只做测试,挑选最近的binlog,后面接的参数,binlog所在位置,要把脚本导出至哪个位置

导出后的效果如下:

# at 566
#190320 13:25:53 server id 1  end_log_pos 641 CRC32 0x25f742d9 	Query	thread_id=8	exec_time=0	error_code=0
SET TIMESTAMP=1553059553/*!*/;
BEGIN
/*!*/;
# at 641
#190320 13:25:53 server id 1  end_log_pos 714 CRC32 0x675a867e 	Table_map: `mydb`.`permission` mapped to number 61
# at 714
#190320 13:25:53 server id 1  end_log_pos 788 CRC32 0x0c81cea8 	Delete_rows: table id 61 flags: STMT_END_F
### DELETE FROM `mydb`.`permission`
### WHERE
###   @1=6
###   @2=NULL
###   @3='测试'
###   @4=NULL
###   @5=0
###   @6=0
###   @7=0
###   @8=0
###   @9=0
###   @10=1
# at 788
#190320 13:25:53 server id 1  end_log_pos 819 CRC32 0xccf14bda 	Xid = 60
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;

 就可以看到操作过的数据了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wheat_Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值