史上最簡(jiǎn)單的MySQL數(shù)據(jù)備份與還原教程(上)(三十五)
數(shù)據(jù)備份與還原第一篇分享給大家,具體內(nèi)容如下
基礎(chǔ)概念:
備份,將當(dāng)前已有的數(shù)據(jù)或記錄另存一份;
還原,將數(shù)據(jù)恢復(fù)到備份時(shí)的狀態(tài)。
為什么要進(jìn)行數(shù)據(jù)的備份與還原?
防止數(shù)據(jù)丟失;
保護(hù)數(shù)據(jù)記錄。
數(shù)據(jù)備份與還原的方式有很多種,具體可以分為:數(shù)據(jù)表備份、單表數(shù)據(jù)備份、SQL備份和增量備份。
數(shù)據(jù)表備份
數(shù)據(jù)表備份,不需要通過(guò) SQL 來(lái)備份,我們可以直接進(jìn)入到數(shù)據(jù)庫(kù)文件夾復(fù)制對(duì)應(yīng)的表結(jié)構(gòu)以及數(shù)據(jù);在需要還原數(shù)據(jù)的時(shí)候,直接將備份(復(fù)制)的內(nèi)容放回去即可。
不過(guò)想要進(jìn)行數(shù)據(jù)表備份是有前提條件的,因?yàn)椴煌拇鎯?chǔ)引擎之間是有區(qū)別的。
對(duì)于存儲(chǔ)引擎,MySQL 主要使用兩種,分別為:InnoDB 和 Myisam,兩者均免費(fèi)。在這里,咱們可以順便科普一下存儲(chǔ)引擎的知識(shí):
其中,Myisam 和 InnoDB 的數(shù)據(jù)存儲(chǔ)方法也有所區(qū)別:
Myisam:表、數(shù)據(jù)和索引全部單獨(dú)分開(kāi)存儲(chǔ);
InnoDB:只有表結(jié)構(gòu),數(shù)據(jù)全部存儲(chǔ)到ibd文件中。
執(zhí)行如下 SQL 語(yǔ)句,測(cè)試 Myisam 的數(shù)據(jù)存儲(chǔ)方式:
-- 創(chuàng)建 Myisam 表 create table my_myisam( id int )charset utf8 engine = myisam; -- 顯示表結(jié)構(gòu) show create table my_myisam; -- 插入數(shù)據(jù) insert into my_myisam values(1),(2),(3); -- 顯示數(shù)據(jù) select * from my_myisam;
如上圖所示,我們創(chuàng)建了名為my_myisam,存儲(chǔ)引擎為 Myisam 的數(shù)據(jù)表。為了驗(yàn)證 Myisam 的存儲(chǔ)特性,我們可以到data文件夾查看具體的數(shù)據(jù)存儲(chǔ)情況:
如上圖所示,我們僅僅創(chuàng)建了一個(gè)表my_myisam,但是 Myisam 對(duì)于會(huì)生成三個(gè)存儲(chǔ)文件,分別為:
my_myisam.frm:存儲(chǔ)表的結(jié)構(gòu);
my_myisam.MYD:存儲(chǔ)表的數(shù)據(jù);
my_myisam.MYI:存儲(chǔ)表的索引。
現(xiàn)在,我們將這三個(gè)文件復(fù)制到testoo數(shù)據(jù)庫(kù)(至于如何找到 MySQL 數(shù)據(jù)文件的存儲(chǔ)位置,可以參考詳述查看 MySQL 數(shù)據(jù)文件存儲(chǔ)位置的方法):
執(zhí)行如下 SQL 語(yǔ)句,進(jìn)行測(cè)試:
-- 切換數(shù)據(jù)庫(kù) use testoo; -- 查看 testoo 數(shù)據(jù)庫(kù)中的表 show tables; -- 查看表 my_myisam select * from my_myisam;
如上圖所示,顯然我們已經(jīng)通過(guò)復(fù)制文件的方式,完成了數(shù)據(jù)表的備份工作。
在這里,有一點(diǎn)需要我們注意,那就是:我們可以將通過(guò) InnoDB 存儲(chǔ)引擎產(chǎn)生的.frm和.idb文件復(fù)制到另一個(gè)數(shù)據(jù)庫(kù),也可以通過(guò)show tables命令查看復(fù)制過(guò)來(lái)的表名稱,但是卻無(wú)法獲得數(shù)據(jù)。
執(zhí)行如下 SQL 語(yǔ)句,進(jìn)行測(cè)試:
-- 查看 testoo 數(shù)據(jù)庫(kù)中的表 show tables; -- 查看表 my_class select * from my_class;
通過(guò)以上測(cè)試,顯然數(shù)據(jù)表備份這種備份方式更適用于 Myisam 存儲(chǔ)引擎,而且備份的方式也很簡(jiǎn)單,直接復(fù)制 Myisam 存儲(chǔ)引擎產(chǎn)生的.frm、.MYD和.MYI三個(gè)存儲(chǔ)文件到新的數(shù)據(jù)庫(kù)即可。
溫馨提示:符號(hào)[]括起來(lái)的內(nèi)容,表示可選項(xiàng);符號(hào)+,則表示連接的意思。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用MySQL如何實(shí)現(xiàn)分頁(yè)查詢
這篇文章主要介紹了使用MySQL如何實(shí)現(xiàn)分頁(yè)查詢,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05

單個(gè)select語(yǔ)句實(shí)現(xiàn)MySQL查詢統(tǒng)計(jì)次數(shù)

MySQL UDF調(diào)試方式debugview的相關(guān)方法

MySQL通過(guò)DQL實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的條件查詢

安裝MySQL在最后的start service停住了解決方法