僅從 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中文網其他相關文章!