cyb*_*ani 16 mysql innodb recovery ibdata wamp
我的 WAMP 目录不小心被另一个用户删除了。MySQL 中只有数据文件夹可用。并且,只有数据库文件夹(“\bin\mysql\mysql5.6.12\data\”中带有数据库名称的文件夹)可用。“\bin\mysql\mysql5.6.12\data\”根目录下包括“ ibdata1 ”在内的所有文件也被删除。
数据库文件夹仅包含以下扩展名的文件。
*.frm,*.ibd
和“db.opt”文件。
如何恢复数据库?
我已经尝试恢复 bdata1。但是,无法收回。而且,一些数据库也包含 MYISAM。
Rol*_*DBA 19
对于 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\mydbmytable.frmmytable.ibd你需要.frm. 如果您查看我的帖子How can extract the table schema from only the .frm file? ,您可以下载一个 MySQL 实用程序,该实用程序可以生成创建表所需的 SQL。
您现在应该执行以下操作
mytable.ibd到\bin\mysql\mysql5.6.12\dataALTER 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\mydbALTER TABLE mydb.mytable IMPORT TABLESPACE;(这将注册\bin\mysql\mysql5.6.12\data\mydb\mytable.ibd到数据字典中)在此之后,该表mydb.mytable应该是完全可访问的。您可以通过简单地运行来测试可访问性:
SELECT * FROM mydb.mytable LIMIT 10;
Run Code Online (Sandbox Code Playgroud)
试一试 !!!
| 归档时间: |
|
| 查看次数: |
57526 次 |
| 最近记录: |