MySQL Server 使用兩種類型的資料庫儲存引擎 – InnoDB 和 MyISAM。當使用InnoDB儲存引擎時,MySQL伺服器將資料和索引儲存在.ibdata檔案中,表模式儲存在.frm檔案中。如果 InnoDB 表損壞,您可以輕鬆地從 .ibdata 和 .frm 檔案還原 InnoDB MySQL 表的數據,而不是還原完整的資料庫備份。在本文中,我們將討論如何從 MySQL 伺服器中的 .ibdata 和 .frm 檔案還原資料。
以下是從 MySQL 伺服器中的 .frm 和 .ibdata 檔案還原 InnoDB 表格資料的逐步程序:
您需要先建立一個新的 MySQL 資料庫。為此,請登入 PhpMyAdmin,按一下「資料庫」選項,輸入資料庫名稱(例如「客戶端」),然後按一下「建立」。
接下來,前往 XAMPP 安裝的資料夾檢查新建立的資料庫。預設位置是 C:xamppmysqldata。
當你開啟新資料庫時,你會發現它不包含任何表格。要建立表,您需要表的架構。如果您有更新的備份文件,那麼您可以獲得資料庫的架構和名稱。您可以使用相同的名稱來建立表格。但如果您沒有備份,則可以使用 .frm 檔案來提取表的架構。在線提供各種可靠的實用程式可以幫助您提取表架構。
現在使用相同的架構在新建立的資料庫中建立表格。
建立表格後,它將自動在資料庫資料夾中建立新的 .frm 和 .ibd 檔案。
接下來,前往 XAMPP 安裝資料夾並刪除 .ibd 檔案。
然後,複製原始 .ibd 檔案並將其貼上到新資料庫中。
在複製原始 .ibd 檔案之前,請執行以下查詢:
ALTER TABLE table_name DISCARD TABLESPACE;
注意:DISCARD TABLESPACE 命令將斷開 MySQL 表和表空間之間的鏈接,從而有助於防止不一致和其他問題。
接下來,使用以下指令還原 MySQL 表與表空間之間的連結:
ALTER TABLE 表名 IMPORT TABLESPACE;
注意:您可以使用 .frm 和 .ibd 檔案一次從單一表格還原資料。如果您需要還原多個表,那麼將花費大量時間,因為您需要手動執行每個表的所有步驟。
要快速、輕鬆地從 MySQL Server 資料庫一次還原多個 InnoDB 表,您可以使用專業的 MySQL 資料庫復原工具。 Stellar Repair for MySQL 就是這樣一種易於使用的工具,它可以從損壞的 MySQL 資料庫中恢復 InnoDB 表和其他數據,例如主鍵、視圖、觸發器等。該工具具有豐富的互動式使用者介面,可協助您透過幾個簡單的步驟快速執行修復和復原操作。
以下是 Stellar Repair for MySQL 的一些關鍵功能:
支援 MySQL Server 8.0.36 及更低版本
支援所有 MariaDB 版本直至 11.3.2
恢復 MySQL 資料庫中的所有數據,包括刪除的記錄和分區表
完全精確地修正 MySQL 表
在儲存之前提供修復資料的增強預覽
允許一次修復多個資料庫
讓您以多種格式儲存已修復的 MySQL 資料庫,例如 MySQL、MariaDB、SQL 腳本、CSV、HTML 和 XLS
相容於Windows和Linux作業系統,包括CentOS 7(64位元)/ Red Hat Enterprise Linux 7(64位元)和Ubuntu 16.04(32位元和64位元)/ Ubuntu 18.04和19.10(64 位元)
上面,我們解釋了從 ibdata 和 .frm 檔案還原 InnoDB MySQL 表資料的詳細逐步過程。但是,這不適合恢復多個表,因為您需要為每個表手動執行所有步驟。或者,您可以使用專業的 MySQL 資料庫復原工具,例如 Stellar Repair for MySQL,它可以幫助您從損壞的資料庫檔案中完全完整地提取所有對象,包括表、主鍵、視圖、觸發器等。該工具支援修復使用 InnoDB 和 MyISAM 儲存引擎建立的資料庫。它旨在解決 MySQL 資料庫中各種與損壞相關的錯誤。 Stellar Repair for MySQL 還提供免費演示版本,允許掃描資料庫檔案並預覽可復原的資料。
以上是如何從 ibdata 和 frm 檔案還原 InnoDB MySQL 表資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!