我本身仅是一名前端,由于公司特殊情况(没员工),我负责数据库维护,社区维护,社区管理等工作。今天因为后台管理没法查到一个用户的数据,所以我拿着userid去mysql查询。
我看到后端原本写好了一句查询语句,我就把id复制进去,然后选中,鼠标右键“选择运行”,这时候我没有注意到前的delete,当我看到MYSQL-Front提示影响一条数据记录的时候。我知道,我一不小心把他删了。
这时候我立马考虑到binlog恢复数据,然而后端并没有配置。
而我再查了下,在webapp目录下也没有mysql数据备份。
恭喜我,成功的在没备份数据库的情况下删除了一个正常的用户。
那么如何处理呢?首先我们了解下mysql的简化工作流程。
解析语句 -> 找索引表 -> 找数据 -> 更新数据 -> 写入文件
然而对于innodb来说,字段以及数据的操作,在开启日志系统sys_log的情况下,数据库的操作变化会存在在lbdata和ldb文件中。这就简单了,意味着现在开始不要操作数据库!去日志目录下找到最新修改的文件,从中提取过去的数据不就行了?
输入语句
show variables;
查询之后找到datadir
好了,这就是我们数据库日志文件的目录了。
C:\ProgramData\MySQL