1、需要回想下,数据删除是在哪个时间段删除的,如果不记得时间,也可以通过日志进行查看,但是日志里面可能会很多,一般记得时间段较好。
2、进入数据库,执行命令
mysql> show master logs;
+---------------+-----------+
| Log_name | File_size |
+---------------+-----------+
| binlog.000549 | 16469845 |
| binlog.000550 | 548 |
| binlog.000551 | 25141557 |
| binlog.000552 | 129388 |
| binlog.000553 | 229002085 |
| binlog.000554 | 1861087 |
| binlog.000555 | 9800931 |
| binlog.000556 | 699599 |
| binlog.000557 | 3463175 |
| binlog.000558 | 155 |
| binlog.000559 | 506 |
| binlog.000560 | 510 |
| binlog.000561 | 504 |
| binlog.000562 | 96808 |
| binlog.000563 | 477599552 |
| binlog.000564 | 163718 |
| binlog.000565 | 285409598 |
| binlog.000566 | 536 |
| binlog.000567 | 238734151 |
| binlog.000568 | 179387191 |
| binlog.000569 | 130409865 |
| binlog.000570 | 101086164 |
| binlog.000571 | 445065837 |
+---------------+-----------+
23 rows in set (0.33 sec)
mysql>
3、查看具体的日志列表,锁定删除数据之前的日志在哪个日志里面,通过时间来判断
4、 mysql8 bin 目录下面没有 mysqlbinlog ,此时可以借用phpstudy_pro 方便安装一个mysql5 在mysql5 的bin 目录下面有mysqlbinlog .
5、进入mysqlbinlog.exe 所在的目录下面,执行命令
windows
mysqlbinlog --no-defaults --database=
artsexam --start-datetime="2022-04-01 00:00:00" --stop-datetime="2022-04-12 18:0
2:00" E:\phpstudy_pro\Extensions\MySQL8.0.12\data\binlog.000030 >E:\11.sql
linux
/etc/env/mysql/bin/mysqlbinlog --no-defaults -d achievements --start-datetime="2022-05-01 00:00:00" --stop-datetime="2022-05-12 21:00:00" /etc/env/mysql/data/binlog.000002 > /kezhuan/33.sql;
6、注意编码问题
--no-defaults 参数可以忽略这个编码问题,这个时候打开转换出来的sql文件,否则会报错如下
unknown variable 'default-character-set=utf8'
7、sql文件内容如下
8、如果第五步加了这个参数-- base64-output=decode-rows -v
9、执行sql文件
source E:\11.sql
10、查看数据已恢复了