仅从 FRM 和 IBD 文件恢复 MySQL 表结构
问题:
用户经常遇到需要恢复数据库但只能访问 FRM 和 IBD 文件的情况。
能否恢复表结构?
可以,即使没有 IB_LOG 文件,也可以从 FRM 文件恢复表结构。
步骤:
1. 从 FRM 文件提取 SQL 创建语句:
mysqlfrm --diagnostic
命令为每个 FRM 文件生成 SQL 创建语句。<code class="language-sql">CREATE TABLE `example_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(150) NOT NULL, `photo_url` varchar(150) NOT NULL, `password` varchar(600) NOT NULL, `active` smallint(6) NOT NULL, `plan` int(11) NOT NULL, PRIMARY KEY `PRIMARY` (`id`) ) ENGINE=InnoDB;</code>
2. 使用 SQL 语句创建表:
3. 恢复数据:
<code class="language-sql">ALTER TABLE example_table DISCARD TABLESPACE;</code>
<code class="language-bash">cp backup/example_table.ibd /path/to/example_table.idb</code>
<code class="language-sql">ALTER TABLE example_table IMPORT TABLESPACE;</code>
以上是我们可以仅从 FRM 和 IBD 文件恢复 MySQL 表结构吗?的详细内容。更多信息请关注PHP中文网其他相关文章!