mysql利用bin-log恢复误删除数据.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql利用bin-log恢复误删除数据.相关的知识,希望对你有一定的参考价值。

模拟备份数据库
mysqldump db1 > db1.sql

启用新的bin-log文件
mysql>flush logs;
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 | 120 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

insert into travelrecord(id,user_id,traveldate,fee,days) values(1002,‘1002‘,20160102,100,10);
UPDATE travelrecord SET user_id = ‘hahaha‘ WHERE id = 1002;
delete from travelrecord where id=1002;

用mysqlbinlog mysql-bin.000003查看具体误删除的时间
mysqlbinlog mysql-bin.000003

#180123 15:24:07 server id 101 end_log_pos 847 CRC32 0x8e720ef9 Query thread_id=20 exec_time=0 error_code=0
SET TIMESTAMP=1516692247/!/;
delete from travelrecord where id=1002
/!/;
.# at 847

此时备份数据库后在还原之前的备份数据。

mysql> set sql_log_bin=0; 临时关闭以免恢复过程生成大量的bin-log文件
mysql> use db1;
mysql> source /root/db1.sql;

mysqlbinlog --stop-datetime="2018-01-23 15:24:07 " mysql-bin.000003| mysql -uroot -p

查看数据库即可恢复数据。

以上是关于mysql利用bin-log恢复误删除数据.的主要内容,如果未能解决你的问题,请参考以下文章

MySQL之delete 忘加where条件误删除恢复

使用bin-log恢复误删数据

mysql利用mysqlbinlog命令恢复误删除数据

MySQL利用binlog恢复误操作数据

mysql"闪回"技术恢复误删除误更改的数据

MYSQL误删除DELETE数据找回