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

2023-02-22    分類: 網(wǎng)站建設

作為一個PHP的程序員,用了好多年的mysql數(shù)據(jù)庫,一般的數(shù)據(jù)表我們要么用InnoDB的表類型(Engine)或MyISAM的表類型居多。在創(chuàng)建數(shù)據(jù)庫表的時候,默認是使用的表類型是InnoDB的,當時也沒太在意,反正不影響數(shù)據(jù)庫的使用,今天我們不講InnoDB和MyISAM的區(qū)別(在使用事務時,需要用到InnoDB表類型之類的),而是講下這兩種數(shù)據(jù)表的如何備份。
一般備份數(shù)據(jù)庫最簡單的方法就是使用phpmyadmin網(wǎng)頁來導出保存為sql文件數(shù)據(jù)庫或Navicat使用軟件將所有的數(shù)據(jù)表全選后另存為sql文件。除了兩種方法外,還能通過備份msyql安裝目錄里的data文件夾里的數(shù)據(jù)庫文件來備份數(shù)據(jù)庫,data路徑如下圖所示:

mysql數(shù)據(jù)庫

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

數(shù)據(jù)庫表

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

提示

即提示這個表是不存在的,從上面的兩個提示可以推斷,innoDB的數(shù)據(jù)庫是把所有的數(shù)據(jù)都保存在ibdata1文件了,而MyISAM的數(shù)據(jù)庫則直接把數(shù)據(jù)保存在表文件里的。

網(wǎng)站欄目:如何快速恢復Mysql數(shù)據(jù)庫中表類型為InnoDB的表結構和數(shù)據(jù)
文章位置:http://www.muchs.cn/news18/239018.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供ChatGPT營銷型網(wǎng)站建設、手機網(wǎng)站建設、服務器托管網(wǎng)站排名、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站