日韩在线中文字幕精品观看,国产精品天天爽夜夜爽,亚洲欧美成人一二三区官网,国产精品久久久久精品一,男人天堂网视频在线播放,c0930人妻斩り43r,99热国产精品视频在线,最新日本视频在线观看地址,日韩在线免费电影中文字幕

400-800-9385
網站建設資訊詳細

如何快速恢復Mysql數據庫中表類型為InnoDB的表結構和數據

發表日期:2019-07-17 10:46:00   作者來源:方維網絡   瀏覽:4348   標簽:數據庫設計    
作為一個PHP的程序員,用了好多年的mysql數據庫,一般的數據表我們要么用InnoDB的表類型(Engine)或MyISAM的表類型居多。在創建數據庫表的時候,默認是使用的表類型是InnoDB的,當時也沒太在意,反正不影響數據庫的使用,今天我們不講InnoDB和MyISAM的區別(在使用事務時,需要用到InnoDB表類型之類的),而是講下這兩種數據表的如何備份。
一般備份數據庫最簡單的方法就是使用phpmyadmin網頁來導出保存為sql文件數據庫或Navicat使用軟件將所有的數據表全選后另存為sql文件。除了兩種方法外,還能通過備份msyql安裝目錄里的data文件夾里的數據庫文件來備份數據庫,data路徑如下圖所示:
 

mysql數據庫


 
如果是表類型為MyISAM的數據庫則非常簡單,只需要將數據表文件夾(如上圖所示的”xianda”)復制到data的目錄里就可以使用這個數據庫了。現在重點講下如何快速恢復表類型為InnoDB的數據庫,根據我的經驗而言(可能還有其他的辦法),想要恢復InnoDB的數據庫有一個必要條件,那就是你必須同時備份了上圖所示的ibdata1的文件,否則將無法備份InnoDB數據表。例如上圖里的”sgccmindb”就是innoDB的數據庫,首先關閉mysql service,然后同時復制數據庫文件夾和ibdata1到data目錄里,如果data有其他數據庫,請先備份,否則ibdata1文件替換原先的ibdata1文件后,原先的數據庫可能會無法使用,特別是表類型innoDB的數據庫肯定無法使用。
以前遇到的問題:只復制數據庫,并沒有復制ibdata1文件,造成的情況如下圖所示:
 

數據庫表
 


從navicat軟件里可以查看到數據表的數據長度為0KB,并且表結構也是無法保存,如果雙擊打開數據表,會彈出錯誤如下圖所示:
 

提示


即提示這個表是不存在的,從上面的兩個提示可以推斷,innoDB的數據庫是把所有的數據都保存在ibdata1文件了,而MyISAM的數據庫則直接把數據保存在表文件里的。
總結:如果使用表類型為innoDB的數據庫,在備份表文件的同時,必須把對應的ibdata1文件也備份了,不過還是建議備份sql文
如沒特殊注明,文章均為方維網絡原創,轉載請注明來自http://www.nnjcqh.com/news/5156.html