MySQL误删除frm文件该怎么办?
情况一:误删后还未重启MySQL
1、从proc中恢复.frm文件
cp /proc/`pidof mysqld`/fd/误删除的.frm /datadir/db/对应库的目录/

情况二:误删后也重启MySQL了
2、从备份中获取表结构
2.1 物理备份
从物理备份中直接把.frm文件拷贝回来。
2.2 逻辑备份
找到该表的DDL,在备用实例创建该表,再把.frm文件拷贝回来。

注意事项:
1、无论是情况一还是情况二,都需要重新设置属主和属组。
2、若恢复期间对该表执行了新的DDL,则上述方法可能都无效。
3、本案例在MySQL 5.7.18版本(开启表独立空间模式)下亲测通过。

05-08 08:43