首先首先首先,本文只是为了做误删恢复测试,给手抖的同学们一个解决办法
切记,删数据之前备份备份备份!!!!!!
下面进入正题:
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 ;
就可以看到操作过的数据了