mysql 誤刪ibdata1檔案 恢復資料

2021-09-17 20:03:46 字數 1000 閱讀 9620

mysql innodb儲存的資料,data目錄下資料庫資料夾下的 ibd檔案儲存資料,frm檔案存放表結構的定義。誤刪了ibdata1檔案後又重啟了mysql,只要有ibd和frm檔案就可以恢復資料。

把原來的data目錄下的資料庫檔案備份一下 刪除資料庫 再重建同名資料庫,或者直接重新命名原來的資料庫 新建原來同名資料庫

如果有原來資料庫的表結構 先直接恢復表結構

如果表結構也沒有則通過frm檔案恢復,安裝mysql utilities 用命令匯出表結構

/usr/bin/mysqlfrm --basedir=/usr/local/mysql/data/db_name/ --port=3306 --user=root /usr/local/mysql/data/dbbak/ > frm.sql
恢復資料

alter

table table_name discard

tablespace

;--先解除表空間繫結,執行完sql後,表的ibd檔案被刪除

cp  table_name.ibd  ../xx/   ##把原來的ibd 檔案拷貝到新建的資料庫目錄下

chown mysql:mysql table_name.ibd ##賦許可權

alter

table table_name import

tablespace

;--繫結表空間

之後 再select

*from table_name ; --可以查到資料了

注 遇到的問題:

set foreign_key_checks =0;

--先設定外來鍵約束檢查關閉

set foreign_key_checks =1;

--都執行完alter操作後再開啟外來鍵約束檢查,以保持表結構完整性

先關閉外來鍵約束,執行刪除操作,然後再開啟外來鍵約束。

如何收縮Mysql的ibdata1檔案

ibdata1是mysql資料庫中乙個資料檔案了,你會發現它來越大了,下面我來介紹收縮mysql的ibdata1檔案大小方法。如上所說,你沒法去收縮innodb資料檔案,你也沒辦法在一台沒有開啟innodb file per table選項的機器上直接加上該選項讓他工作,你必須在安裝完mysql就加...

如何收縮Mysql的ibdata1檔案

ibdata1是mysql 資料庫中乙個資料檔案了,你會發現它來越大了,下面我來介紹收縮mysql的ibdata1檔案大小方法。如上所說,你沒法去收縮innodb資料檔案,你也沒辦法在一台沒有開啟innodb file per table選項的機器上直接加上該選項讓他工作,你必須在安裝完mysql就...

如何刪除ibdata1

高危操作,謹慎執行,因為執行完操作之後,資料庫原來的表可能會不能用 資料庫優化需要注意的地方 1 在資料庫test中,如果其中一張表的資料量很大,那麼另一張表的插入效率會很低 2 ibdata1 當你啟用了 innodb file per table,表被儲存在他們自己的表空間裡,但是共享表空間仍然...