MySQL InnoDB表缺失,不计入数据库结构

Mac*_*lor 5 mysql innodb

我的MySQL表中有一个严重的问题,一旦有InnoDB表,它们是IN USE,现在以某种方式隐藏

看看这个[pic] *链接被删除 - 标题中的表数是79,实际计数是74.

这些表是IN USE

我最近没有备份我的数据库,所以这对我来说是生死游戏

我检查了我的VPS,我发现它们在/ etc/lib/mysql/db_name /.

编辑:

我搜索了互联网,我发现每个表应该有3个与之相关的文件.

例如,该表table_users具有:

 -- table_users.frm
 -- table_users.MYD
 -- table_users.MYI
Run Code Online (Sandbox Code Playgroud)

对于那些隐藏的表,只有.frm文件,并且缺少表的其他两个文件.

我应该将我的问题改为:如何从.frm文件中恢复innodb表?

Geo*_*rey 6

InnoDB没有这三个文件

对于所有数据库和表,InnoDB数据存储在"ibdata1"中.表定义存储在"tablename.frm"中

我会说你的InnoDB文件已经损坏,你可能想看看这些工具:https: //launchpad.net/percona-innodb-recovery-tool


kpo*_*wer 1

更新

首先,关于文件:

  • .frm——表结构;
  • .myd - 表数据;
  • .myi - 索引。

要恢复表,您可以尝试(先进行备份):

1) 运行check table tablename- 对于所有数据库表;
2) 运行repair table tablename- 获取必要的表。


再次更新

另一个想法......试试这个:

  1. 创建一个新数据库来恢复和创建与 .frm 文件同名的表(只有一个字段 - 仅用于创建新的 .frm 文件);
  2. 停止 mysql 服务并用您的文件替换创建的 .frm 文件;
  3. 启动mysql服务并检查。

我期望正确的表格(当然没有数据)。抱歉,在建议之前我暂时没有电脑可以检查......