1. 程式人生 > 資料庫 >史上最簡單的MySQL資料備份與還原教程(上)(三十五)

史上最簡單的MySQL資料備份與還原教程(上)(三十五)

資料備份與還原第一篇分享給大家,具體內容如下

基礎概念:

備份,將當前已有的資料或記錄另存一份;

還原,將資料恢復到備份時的狀態。

為什麼要進行資料的備份與還原?

防止資料丟失;
保護資料記錄。

資料備份與還原的方式有很多種,具體可以分為:資料表備份、單表資料備份、SQL備份和增量備份。

資料表備份

資料表備份,不需要通過 SQL 來備份,我們可以直接進入到資料庫資料夾複製對應的表結構以及資料;在需要還原資料的時候,直接將備份(複製)的內容放回去即可。

不過想要進行資料表備份是有前提條件的,因為不同的儲存引擎之間是有區別的。

對於儲存引擎,MySQL 主要使用兩種,分別為:InnoDB 和 Myisam,兩者均免費。在這裡,咱們可以順便科普一下儲存引擎的知識:

其中,Myisam 和 InnoDB 的資料儲存方法也有所區別:

Myisam:表、資料和索引全部單獨分開儲存;
InnoDB:只有表結構,資料全部儲存到ibd檔案中。

執行如下 SQL 語句,測試 Myisam 的資料儲存方式:

-- 建立 Myisam 表
create table my_myisam(
 id int
)charset utf8 engine = myisam;

-- 顯示錶結構
show create table my_myisam;

-- 插入資料
insert into my_myisam values(1),(2),(3);

-- 顯示資料
select * from my_myisam;

1

如上圖所示,我們建立了名為my_myisam,儲存引擎為 Myisam 的資料表。為了驗證 Myisam 的儲存特性,我們可以到data資料夾檢視具體的資料儲存情況:

1

如上圖所示,我們僅僅建立了一個表my_myisam,但是 Myisam 對於會生成三個儲存檔案,分別為:

my_myisam.frm:儲存表的結構;
my_myisam.MYD:儲存表的資料;
my_myisam.MYI:儲存表的索引。

現在,我們將這三個檔案複製到testoo資料庫(至於如何找到 MySQL 資料檔案的儲存位置,可以參考詳述檢視 MySQL 資料檔案儲存位置的方法):

1

執行如下 SQL 語句,進行測試:

-- 切換資料庫
use testoo;

-- 檢視 testoo 資料庫中的表
show tables;

-- 查看錶 my_myisam
select * from my_myisam;

1

如上圖所示,顯然我們已經通過複製檔案的方式,完成了資料表的備份工作。

在這裡,有一點需要我們注意,那就是:我們可以將通過 InnoDB 儲存引擎產生的.frm和.idb檔案複製到另一個數據庫,也可以通過show tables命令檢視複製過來的表名稱,但是卻無法獲得資料。

1

執行如下 SQL 語句,進行測試:

-- 檢視 testoo 資料庫中的表
show tables;

-- 查看錶 my_class
select * from my_class;

1

通過以上測試,顯然資料表備份這種備份方式更適用於 Myisam 儲存引擎,而且備份的方式也很簡單,直接複製 Myisam 儲存引擎產生的.frm、.MYD和.MYI三個儲存檔案到新的資料庫即可。

溫馨提示:符號[]括起來的內容,表示可選項;符號+,則表示連線的意思。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。