数据库文件误删恢复教程
⚠️ 立刻停止数据库服务
发现数据库文件被删后,立刻停止 MySQL/SQL Server 服务。数据库进程在持续写入日志(binlog/redo log),每一秒都在覆盖被删文件所在的磁盘区域。
MySQL 恢复
第一步:停止服务
cmd
net stop MySQL80或 services.msc → 找到 MySQL → 停止。
第二步:恢复 .ibd 和 .frm 文件
InnoDB 的数据文件是 .ibd(每表一个文件空间)或 ibdata1(共享表空间):
- 用 Recuva 或 EaseUS 扫描 MySQL 数据目录。
- 默认路径:
C:\ProgramData\MySQL\MySQL Server 8.0\Data\。 - 恢复
.ibd、.frm、ibdata1、ib_logfile*。
第三步:用恢复的 .ibd 文件导入数据
恢复后的 .ibd 不能直接替换当前数据库,需用"表空间导入"方式:
- 在新 MySQL 实例中创建同名表结构。
ALTER TABLE table_name DISCARD TABLESPACE。- 把恢复的
.ibd文件复制到对应目录。 ALTER TABLE table_name IMPORT TABLESPACE。
SQL Server 恢复
恢复 .mdf 和 .ldf
- 用恢复软件扫描 SQL Server 数据目录(默认
C:\Program Files\Microsoft SQL Server\MSSQL*\MSSQL\DATA\)。 - 恢复
.mdf(主数据文件)和.ldf(日志文件)。 - 在 SSMS 中:右键数据库 → 附加 → 选恢复的
.mdf。
📖 相关教程:Outlook邮箱恢复 | 文件被覆盖恢复