mysql 直接從date 檔案夾備份表,還原資料庫之後提示 table doesn`t exist的原因和解決方案

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   檔案   資料   

補充:正常情況下,建議Database Backup最好用工具進行備份,通過拷貝資料庫表進行資料移轉,不同的環境會出現各種不同的意外問題。

背景:今天在整理一個網站的時候,作業系統由於系統自動更新導致一直出現系統藍色當機畫面,唉,悲劇了,於是重新安裝了系統 windows server 2008 enterprise 32bit。

詳情:

      系統安裝完成後,重新設定之前那個網站,appache服務配好之後,再配置資料的時候是這樣做的,將原來Mysql 檔案夾(C:\Windows.old\ProgramData\MySQL\MySQL Server 5.1\data)下的資料庫檔案夾及"*.frm"

拷貝到新安裝的myql資料庫檔案夾下面(C:\ProgramData \MySQL\MySQL Server 5.1\data),重啟mysql服務,通過使用navicate for mysql 工具查看資料庫 “xxdatabase”中某張表,結果顯示“ mysql table ‘xxtable‘ doesn`t exist ”,

這個可把我給急壞了,心想這下可玩大了,網站的資料要是出問題了,領導還不把我給燒烤了啊。

    於是我就google 啊,百度啊,bing啊,stackoverflow啊等幾大常用的搜尋全用上了,搜尋出來的答案全部都不能解決問題啊,一不留神時間到了該吃飯的點了, 唉,心想先吃飽飯,然後在思考更有思路,哈哈。於是回去猛吃了一頓,可把我給撐的啊,廢話少說,回來後又找啊找啊,結果還是沒能找到合適解決方案,於是認 真查看了下mysql 的data檔案加下的檔案,發現了WIN-4FA0WLP5F0V.err和WIN-4FA0WLP5F0V.pid 兩個檔案,於是看了具體的錯誤內容如下

 

感覺應該是資料庫引擎配置的問題,於是搜尋了有關InnoDB 和MyISAM的相關資料,如下這段內容很有意義

以表”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,可以了

高興啊,於是稍微總結了,希望以後遇到相同的問題,能夠快速解決。

1,在進行mysqlDatabase Backup的或遷移的時候,盡量備份完成所需要的資料;

2,如果直接拷貝原有資料庫檔案"*.frm"、"*.MYD"、"*.MYI"等檔案時候,如果原資料庫引擎是InnoDB,切記還需拷貝ibdata1檔案

3,備份資料庫的時候,最好是用相關的工具進行備份或是匯出sql檔案,以免浪費時間在資料庫恢複上

4,msyql版本或是備份工具的版本不同,也可能引起資料恢複有問題。

實踐證明以上問題是存在的,解決方案是可行的,哈哈,為了以後方便,寫了這篇部落格隨筆,希望大牛看到了不要鄙視,歡迎拍磚。

 

 

 

1:MyISAM類型的資料檔案可以在不同作業系統中COPY,這點很重要,布署的時候方便點。(只需要拷貝 資料庫名字檔案夾下面的檔案,這樣資料庫就拷貝完了)

2:  InnoDB類型的 要注意多拷貝 ibdata1 , 最好不要是直接複製檔案夾,而是應該用sql匯入匯出

轉載於:http://www.cnblogs.com/joeylee/archive/2012/09/27/2705685.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.