MySql通過數據庫文件恢復數據庫


以表”Table”為例:

如類型是MyISAM, 數據文件則以”Table.frm””Table.MYD””Table.MYI””三個文件存儲於”/data/$databasename/”目錄中.

如類型是InnoDB, 數據文件則存儲在”$innodb_data_home_dir/″中的ibdata1文件中(一般情況),結構文件存在於table_name.frm中.

MySQL的數據庫文件直接復制便可以使用,但是那是指“MyISAM”類型的表。

而使用MySQL-Front直接創建表,默認是“InnoDB”類型,這種類型的一個表在磁盤上只對應一個“*.frm”文件,不像MyISAM那樣還“*.MYD,*.MYI”文件。

MyISAM類型的表直接拷到另一個數據庫就可以直接使用,但是InnoDB類型的表卻不行。解決方法就是:

 

同時拷貝innodb數據庫表“*.frm”文件和innodb數據“ibdata1”文件到合適的位置。啟動MySQL的Windows服務

由於MySQL這樣數據混雜的形式, 往往很容易讓使用者在備份時忘記了備份InnoDB, 從而導致了上述錯誤. 

意思就是說在數據庫引擎類型為InnoDB時,拷貝數據文件的同時還需要拷貝ibdata1,於是把ibdata1也拷貝過去覆蓋,發現還是有點問題,於是停止mysql服務,將目錄下的ib_logfile*文件全部刪除掉,重新啟動mysql服務,well done,可以了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM