docker使用binlog恢复MySQL数据库
·
场景描述
数据库被黑客攻击,导致数据库被删除
误操作,导致数据被删除
遇到这些情况,如果没有备份,那就需要通过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
执行完毕,就可以看到数据库的数据已经恢复到指定时间点了。
更多推荐
所有评论(0)