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

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

下面进入正题:

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

show variables like '%log_bin%'

结果如下:

Mysql数据数据误删怎么办?数据恢复测试log_bin代表开启操作日志

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

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

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

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 ;

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

相关文章:

  • 2021-09-06
  • 2021-11-02
  • 2021-07-20
  • 2021-08-19
  • 2021-11-29
  • 2021-11-25
  • 2021-12-04
  • 2021-09-19
猜你喜欢
  • 2022-01-17
  • 2021-12-22
  • 2021-05-25
  • 2021-12-05
  • 2021-05-07
  • 2021-08-14
相关资源
相似解决方案