2013-11-03 15 views
2

幾天以前,我不能讓MySQL運行了(XAMPP)走了之後:XAMPP - MySQL shutdown unexpectedlyMySQL表後,一些谷歌上搜索,我發現這個帖子刪除ibdata1中

它說,除去我做了ibdata1中的文件, mysql再次啓動,但一個數據庫的表已消失,但是我仍然可以看到數據文件夾(ibd和frm文件)中包含值的表有無論如何我都可以恢復這些表?

謝謝。

+2

我試着問......你期望一個名爲'data'的文件實際上包含了什麼? : - | –

+1

閱讀此: http://stackoverflow.com/questions/2222583/what-if-i-delete-ibdata1-in-mysql-linux?rq=1 但你真的刪除ibdata1文件或只是重命名它呢? – teecee

回答

4

ibdata1文件很重要,除非您想刪除所有的InnoDB數據並重新開始一個空的MySQL實例,否則通常不應刪除它。

即使你使用innodb_file_per_table=1和所有的表都存儲在文件的.ibd的ibdata1中的文件仍然包含數據字典,這基本上是一樣的InnoDB的表空間內容的全局表。 InnoDB知道你有哪些表以及它們駐留在哪些文件.IBdata1文件還可以在回滾段和更改緩衝區中包含重要數據,這些數據最終會合併到表中,但這可能需要一些時間。

如果您已經刪除ibdata1,並且您已經以表格文件格式存儲表格數據,有時可以恢復,但這是一個非常細緻的過程。這裏有幾個引用:

所以,很簡單,恢復最近的備份,然後use the binary log to play back changes隨後作出的到最新的備份。