场景描述

数据库被黑客攻击,导致数据库被删除

误操作,导致数据被删除

遇到这些情况,如果没有备份,那就需要通过MySQL自带的binlog功能,恢复数据库。包括整个数据库被删除的情况,也能完整恢复。

实施恢复

查看MySQL容器信息

进入到容器中

docker exec -it mysql8 bash

查看是否开启binlog

前提是要开启了binlog,才能用binlog进行恢复。查看是否开启binlog:

mysql -uroot -p -e "SHOW VARIABLES LIKE 'log_bin%';"

查找binlog目录

mysql -uroot -p -e "SHOW VARIABLES LIKE 'datadir';"

进入binlog目录

cd /var/lib/mysql/

binlog.xxxx就是恢复数据需要用到的文件。

进行数据恢复

假设删除发生在 11 月 28 日 09:20 之后,那么恢复数据到11 月 28 日 09:20前就可以了,执行如下的命令:

mysqlbinlog --stop-datetime="2025-11-28 09:19:59" binlog.000002 | mysql -u root -p

执行完毕,就可以看到数据库的数据已经恢复到指定时间点了。

更多推荐