暂无图片
mysql 某一张表frm文件丢失
我来答
分享
暂无图片 匿名用户
mysql 某一张表frm文件丢失
暂无图片 5M

1.没有备份情况下如何恢复;


2怎么找到frm文件丢失原因,通常有哪些原因会导致frm文件丢失。


3.在frm丢失的情况下,如何create table方式重建同名的表?

其中测试将ibd文件删除,也无法重建同名表,测试过程如下:

创建测试表
mysql> use xxx;
mysql> create table t1228a(id int);

模拟删除t1228a.frm 文件
rm -rf /mysqldata/3306/data/xxx/t1228a.frm

无法查询和创建同名表
mysql> select * from t1228a;
ERROR 1146 (42S02): Table 'xxx.t1228a' doesn't exist

mysql> create table t1228a(id int);
ERROR 1813 (HY000): Tablespace '`xxx`.`t1228a`' exists.

尝试删除1228a.ibd文件
rm -rf /mysqldata/3306/data/xxxt/1228a.ibd

还是无法创建和删除同名表
mysql> use xxx;
Database changed

mysql> select * from t1228a;
ERROR 1146 (42S02): Table 'xxx.t1228a' doesn't exist

mysql> create table t1228a(id int);
ERROR 1030 (HY000): Got error 168 from storage engine

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
test

可以试下mysqlfrm工具

暂无图片 评论
暂无图片 有用 0
Xiang
  • 备份idb文件
  • 在其他库创建一个表结构一致的同名表
  • 复制其他库创建的 tbl_name.frm 至被删除 frm 的库中,并保证 mysql 有相应的操作权限
  • drop table tbl_name
  • 创建一个表结构一致的同名表
  • 执行sql
alter table `tbl_name` discard tablespace;
  • 用备份出来的 idb 文件替换 create 自动创建的 idb 文件
  • 执行sql,导入表
alter table `tbl_name` import tablespace;
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏