MySQL 表误删恢复方法
当 MySQL 表被意外删除时,有两种方法可以尝试恢复:
方法一:二进制日志 (binlog)
-
确认服务器启用二进制日志记录。
使用以下命令找出删除表的二进制日志:
<code>mysqlbinlog --start-position=NNN --stop-position=MMM --database=<database_name> <log_file></code>
其中,NNN 和 MMM 是删除操作发生前后的二进制日志位置。
- 将找到的二进制日志导入另一个数据库实例或执行以下命令重新应用:
<code>mysql --binlog=<log_file></code>
方法二:数据文件恢复
-
找到被删除表的
.frm、
.ibd和
.MYI文件,它们通常位于 MySQL 数据目录的
mysql/data/子目录中。 在另一个 MySQL 实例中,创建与被删除表结构相同的新表。 停止 MySQL 实例并替换新表的
.frm、
.ibd和
.MYI文件为已删除表的相应文件。 启动 MySQL 实例并检查新表是否包含已删除表的数据。
注意事项:
以上方法仅适用于表的逻辑删除,物理删除无法恢复。 二进制日志恢复需要启用二进制日志记录。 数据文件恢复需要确保已删除表的文件未被覆盖或修改。