记一次无备份恢复Mysql误删用户数据

在没有数据库备份的情况下,作者意外删除了一个用户的数据。通过理解MySQL的工作流程,尤其是InnoDB的日志机制,作者从binlog和ibdata1文件中手动提取并恢复了数据。经过解析和对比,成功将用户信息重新插入数据库,完成了数据恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我本身仅是一名前端,由于公司特殊情况(没员工),我负责数据库维护,社区维护,社区管理等工作。今天因为后台管理没法查到一个用户的数据,所以我拿着userid去mysql查询。


我看到后端原本写好了一句查询语句,我就把id复制进去,然后选中,鼠标右键“选择运行”,这时候我没有注意到前的delete,当我看到MYSQL-Front提示影响一条数据记录的时候。我知道,我一不小心把他删了。

这时候我立马考虑到binlog恢复数据,然而后端并没有配置。


而我再查了下,在webapp目录下也没有mysql数据备份。

恭喜我,成功的在没备份数据库的情况下删除了一个正常的用户。

那么如何处理呢?首先我们了解下mysql的简化工作流程。

解析语句 -> 找索引表 -> 找数据 -> 更新数据 -> 写入文件

然而对于innodb来说,字段以及数据的操作,在开启日志系统sys_log的情况下,数据库的操作变化会存在在lbdata和ldb文件中。这就简单了,意味着现在开始不要操作数据库!去日志目录下找到最新修改的文件,从中提取过去的数据不就行了?

输入语句

show variables;

查询之后找到datadir


好了,这就是我们数据库日志文件的目录了。

C:\ProgramData\MySQL

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值