MySQL数据库删除恢复

11/16/2021

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

目前涉电信诈骗网站后台数据库,也多为MySQL数据库。如何恢复已经删除的数据库?本文介绍了在开启binlog日志下如何恢复删除的数据库。

测试环境准备:
1、Windows10操作系统主机
2、MySQL数据库(5.7.26)

新建数据库test10:
1、使用create命令创建数据库,create database test10;
2、使用数据库管理工具创建数据库,本文使用Navicat Premium进行数据库创建

新建数据库表:
在test10数据库中添加,设计test表,并添加数据。

1

表设计有2个字段,测试数据为1和22.

2

删除test10数据库:
1、使用drop命令删除test10数据库。
2、使用数据库管理工具,删除test10数据库。如下图所示:

3

恢复删除数据库:

1、使用show variables like ‘log_bin’;命令查看binlog日志状态,“Value”为”ON”表示已开启。

4

2、执行show master status;命令,找到当前mysql记录的binlog文件。

3、执行show binlog events in ‘binlog.000001’;命令,查看binlog日志,定位原因。

6

4、导出binlog日志文件为sql语句。由于binlog文件为二进制文件,使用文本编辑工具打开后无法正常阅读。

7

5、执行mysqlbinlog –no-defaults binlog.000001 >001bin.sql命令,将binlog文件导出为001bin.sql文件。

8

从此文件中可以看出创建数据库、创建表、设计表、添加表数据,删除数据的所有SQL语句。接下来的工作可以使用此创建数据库和数据库表部分的语句,插入表内容的语句进行数据库恢复工作。

至此,删除的数据库已经成功恢复出来。由于某些原因未开启binlog日志的删除数据库可以使用Percona Data Recovery Tool for InnoDB工具进行恢复,但是恢复效果有限。