2023-11-19 08:39:59 4
在这里,我们将介绍一种简单的方法,通过开启binlog二进制日志来记录用户对MySQL数据库的所有操作(查询除外),然后使用mysqlbinlog命令将其导出为SQL文件(剔除drop语句),最后进行恢复。下面我将简单介绍一下操作过程,实验环境为Win10和MySQL5.5,有兴趣的朋友可以尝试一下:
1.首先,需要开启binlog功能。这个操作需要修改MySQL安装目录下的my.ini配置文件,在[mysqld]下添加一行设置“log-bin = mysql-bin”即可,如下所示:
接着重启MySQL服务,就可以在MySQL数据目录下看到生成的日志记录文件—mysql-bin.000001和mysql-bin.index。其中mysql-bin.000001是日志文件,会自动顺序递增,记录每次数据库重启后用户的所有操作记录,而mysql-bin.index是日志索引文件,记录所有的日志文件名称。
2.接着我们就可以模拟数据库误删的过程了。这里我先新建了一个db数据库,然后创建了一个test数据表,并依次插入了3条数据,如下所示:
然后我们执行“drop database db”删除数据库,再“use db”时就会报错,告诉数据库db不存在,如下:
3.接下来就是数据库恢复的过程。打开cmd窗口,运行“mysqlbinlog --no-defaults binlog日志文件路径(这里换成你的binlog文件)”命令,就可以看到我们重启数据库后所有的数据库操作记录,如下。每个操作都有唯一的对应位置,这里我们需要剔除掉drop语句,也就是恢复到958这个位置:
直接运行“mysqlbinlog --no-defaults --stop-position="958" binlog日志文件路径。
Linux、centOS、Ubuntu、Windows操作系统下的ECS云服务器、vps虚拟空间、建站主机到期停止异常等状态监测,宝塔面板Bt、小皮面板PHPStudy、IIS、Apache、Nginx、XAMPP、wamp建站环境意外故障监测,php+MySql、asp、java、html等建站程序运行故障监测,域名状态、SSL证书状态监测,网站301、302、404、500错误代码及网站无法访问通知提醒,全国多节点测试网站速度及网络攻击!
扫一扫,关注我们
桂ICP备2022009721号-1