我的ISAM
对于MyISAM表mydb.mytable,您应该具有三个文件
\bin\mysql\mysql5.6.12\data\mydb\mytable.frm
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYD
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYI
由于每个文件都包含所需的数据,元数据和索引信息,因此它们应该已经可以作为表访问。它们共同构成表格。没有可访问的外部存储引擎机制。
创新数据库
看看这个InnoDB的图形表示
将ibdata1附加到.ibd
文件的唯一内容是数据字典。
您的任务(如果您决定接受它)是创建每个表并在 .ibd
在执行任何操作之前,请将“ \ bin \ mysql \ mysql5.6.12 \ data”的完整副本复制到另一个
这是一个样本
假设您有一个mydb
带有表的数据库mytable
。这表示
- 你有文件夹
\bin\mysql\mysql5.6.12\data\mydb
- 在该文件夹中,您有
您需要.frm
。如果您看一下我的文章,如何仅从.frm文件提取表架构?,您可以下载一个MySQL实用程序,该实用程序可以生成创建表所需的SQL。
您现在应该执行以下操作
- 移动
mytable.ibd
到\bin\mysql\mysql5.6.12\data
- 运行SQL创建InnoDB表
- 登录到mysql并运行
ALTER TABLE mydb.mytable DISCARD TABLESPACE;
(这将删除\bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
)
- 复制
\bin\mysql\mysql5.6.12\data\mytable.ibd
到\bin\mysql\mysql5.6.12\data\mydb
- 登录到mysql并运行
ALTER TABLE mydb.mytable IMPORT TABLESPACE;
(这将注册\bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
到数据字典中)
此后,该表mydb.mytable
应该可以完全访问。您只需运行以下命令即可测试该可访问性:
SELECT * FROM mydb.mytable LIMIT 10;
试试看 !!!
负责任的DRINK(数据恢复结合了必要的知识)