MySQL中,InnoDB存儲引擎的表在磁盤上存儲數據的文件為.ibd文件。在數據損壞、誤刪除等情況下,有時需要恢復.ibd文件中的數據。下面介紹具體的恢復方式。
1. 找回.ibd文件
mysql> use information_schema; mysql> select concat(TABLE_SCHEMA,'/',TABLE_NAME,'.ibd') from files where TABLE_SCHEMA not in ('mysql','information_schema','performance_schema');
使用以上命令,從information_schema庫中獲取每個表對應的.ibd文件,在所在目錄里面進行查找,找到對應的文件即可。
2. 配置MySQL中該表的信息
mysql> use <db_name>; mysql> CREATE TABLE <table_name> (id int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
在數據庫中重新創建該表,與原表的表名、列名、數據類型等保持一致。
3. 導入.ibd文件數據到新表中
mysql> ALTER TABLE <table_name> DISCARD TABLESPACE; mysql> ALTER TABLE <table_name> IMPORT TABLESPACE;
使用以上命令,導入.ibd文件的數據至新表中。
4. 檢查數據是否正確
mysql> SELECT * FROM <table_name>;
使用SELECT命令檢查數據的完整性,并且可以恢復原表沒有的數據。
總結:以上是MySQL中.ibd文件的數據恢復過程。數據的備份是“保險箱”,在數據亂序、誤刪除等情況下可以起到很好的作用。因此,對于數據的安全性,必須重視備份的重要性。
上一篇mysql https
下一篇mysql html格式