史上最簡(jiǎn)單的MySQL數(shù)據(jù)備份與還原教程(下)(三十七)
數(shù)據(jù)備份與還原第三篇,具體如下
基礎(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備份和增量備份。
SQL 備份
SQL 備份,備份的是 SQL 語(yǔ)句。在進(jìn)行 SQL 備份的時(shí)候,系統(tǒng)會(huì)對(duì)表結(jié)構(gòu)以及數(shù)據(jù)進(jìn)行處理,變成相應(yīng)的 SQL 語(yǔ)句,然后執(zhí)行備份。在還原的時(shí)候,只要執(zhí)行備份的 SQL 語(yǔ)句即可,此種備份方式主要是針對(duì)表結(jié)構(gòu)。
不過(guò),MySQL 并沒(méi)有提供 SQL 備份的指令,如果我們想要進(jìn)行 SQL 備份,則需要利用 MySQL 提供的軟件mysqldump.exe,而且mysqldump.exe也是一種客戶端,因此在操作服務(wù)器的時(shí)候,必須進(jìn)行認(rèn)證。
基本語(yǔ)法:mysqldump.exe -hPup + 數(shù)據(jù)庫(kù)名字 + [表名1 + [表名2]] > 備份文件目錄
其中,-hPup分別表示
h:IP 或者localhost;
P:端口號(hào);
u:用戶名;
p:密碼。
由于mysqldump.exe也是客戶端,因此想執(zhí)行上述命令,我們需要先退出 MySQL 客戶端,然后在命令行窗口執(zhí)行如下命令:
mysqldump.exe -uroot -pbin.guo test class > D:/CoderLife/testMySQL/classSQL.sql
如上圖所示,雖然mysqldump給出了警告(在命令行中輸入密碼是不安全的),但是我們輸入的命令已經(jīng)成功執(zhí)行啦!在這里,如果執(zhí)行上述命令不成功的話,很有可能是我們沒(méi)有配置環(huán)境變量的問(wèn)題。
如上圖所示,在testMySQL目錄下,已經(jīng)生產(chǎn)了對(duì)表class的 SQL 備份,至于 SQL 備份的內(nèi)容到底是什么,我們可以打開classSQL.sql文件進(jìn)行查看:
如上圖所示,通過(guò) SQL 備份的文件,包含了各種 SQL 語(yǔ)句,如創(chuàng)建表的語(yǔ)句以及插入數(shù)據(jù)的語(yǔ)句等等。
此外,在上面給出的執(zhí)行 SQL 備份的基本語(yǔ)法中,我們可以看到表名都用[]
括了起來(lái),這表示可選項(xiàng),如果不輸入表名,則默認(rèn)備份整個(gè)數(shù)據(jù)庫(kù)。執(zhí)行過(guò)程和上面一樣,因此我們就不予演示啦!
接下來(lái),我們演示通過(guò) SQL 備份的文件還原數(shù)據(jù),有兩種方式:
方式 1:使用mysql.exe客戶端還原數(shù)據(jù)
基本語(yǔ)法mysql.exe/mysql -hPup 數(shù)據(jù)庫(kù)名稱 + 數(shù)據(jù)庫(kù)名字 + [表名1 + [表名2]] < 備份文件目錄
在命令行窗口執(zhí)行如下命令,進(jìn)行測(cè)試:
-- 登錄 MySQL 客戶端 mysql -uroot -p -- 輸入密碼,切換數(shù)據(jù)庫(kù) use test; -- 刪除表 class 中的數(shù)據(jù) delete from class; -- 退出數(shù)據(jù)庫(kù) \q -- 通過(guò) SQL 備份的文件還原數(shù)據(jù) mysql -uroot -pbin.guo test < D:/CoderLife/testMySQL/classSQL.sql
如上圖所示,上述命令全部執(zhí)行成功。下面,我們檢查還原結(jié)果,
如上圖所示,顯然表class的數(shù)據(jù)在刪除之后,我們通過(guò) SQL 備份的文件還原了數(shù)據(jù)。
方式 2:使用 SQL 命令還原數(shù)據(jù)
基本語(yǔ)法source + 備份文件目錄;
執(zhí)行如上 SQL 語(yǔ)句,進(jìn)行測(cè)試:
-- 查看表 class 數(shù)據(jù) select * from class; -- 刪除表 class 數(shù)據(jù) delete from class; -- 查看表 class 數(shù)據(jù) select * from class; -- 通過(guò) SQL 備份的文件還原數(shù)據(jù) source D:/CoderLife/testMySQL/classSQL.sql; -- 查看表 class 數(shù)據(jù) select * from class;
如上圖所示,顯然表class的數(shù)據(jù)在刪除之后,我們通過(guò) SQL 備份的文件利用第二種方式還原了數(shù)據(jù)。
通過(guò)上面的學(xué)習(xí)及測(cè)試,我們可以知道 SQL 備份的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):可以備份表結(jié)構(gòu);缺點(diǎn):增加額外的 SQL 命令,會(huì)浪費(fèi)磁盤空間。
增量備份
增量備份,不是針對(duì)數(shù)據(jù)或者 SQL 進(jìn)行備份,而是針對(duì) MySQL 服務(wù)器的日志進(jìn)行備份,其日志內(nèi)容包括了我們對(duì)數(shù)據(jù)庫(kù)的各種操作的歷史記錄,如增刪改查等。此外,增量備份是指定時(shí)間段進(jìn)行備份,因此備份的數(shù)據(jù)一般不會(huì)出現(xiàn)重復(fù)的情況,常用于大型項(xiàng)目的數(shù)據(jù)備份。在此,我們就不詳細(xì)的進(jìn)行介紹了,至于這部分的內(nèi)容,以后會(huì)單獨(dú)寫一篇關(guān)于如何進(jìn)行增量備份的博文。
溫馨提示:符號(hào)[]括起來(lái)的內(nèi)容,表示可選項(xiàng);符號(hào)+,則表示連接的意思。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
mysql語(yǔ)句實(shí)現(xiàn)簡(jiǎn)單的增、刪、改、查操作示例
這篇文章主要介紹了mysql語(yǔ)句實(shí)現(xiàn)簡(jiǎn)單的增、刪、改、查操作,結(jié)合實(shí)例形式分析總結(jié)了mysql語(yǔ)句實(shí)現(xiàn)數(shù)據(jù)庫(kù)與表的創(chuàng)建、刪除以及增刪改查等常見(jiàn)操作技巧,需要的朋友可以參考下2019-05-05MYSQL數(shù)據(jù)庫(kù)如何設(shè)置主從同步
大家好,本篇文章主要講的是MYSQL數(shù)據(jù)庫(kù)如何設(shè)置主從同步,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01windows版本下mysql的安裝啟動(dòng)和基礎(chǔ)配置圖文教程詳解
本文通過(guò)圖文并茂的形式給大家介紹了windows版本下mysql的安裝啟動(dòng)和基礎(chǔ)配置圖文教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06安裝mysql 8.0.17并配置遠(yuǎn)程訪問(wèn)的方法
這篇文章主要介紹了安裝mysql 8.0.17并配置遠(yuǎn)程訪問(wèn)的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10如何徹底刪除mysql服務(wù)(清理注冊(cè)表)詳解
這篇文章主要給大家介紹了關(guān)于如何徹底刪除mysql服務(wù)(清理注冊(cè)表)的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03MySQL分組查詢、排序查詢、分頁(yè)查詢以及執(zhí)行順序
MySQL數(shù)據(jù)查詢是數(shù)據(jù)庫(kù)操作中最常見(jiàn)的操作之一,它可以幫助我們從數(shù)據(jù)庫(kù)中獲取所需的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL分組查詢、排序查詢、分頁(yè)查詢以及執(zhí)行順序的相關(guān)資料,需要的朋友可以參考下2024-02-02借助PHP的mysql_query()函數(shù)來(lái)創(chuàng)建MySQL數(shù)據(jù)庫(kù)的教程
這篇文章主要介紹了借助PHP的mysql_query()函數(shù)來(lái)創(chuàng)建MySQL數(shù)據(jù)庫(kù)的教程,將函數(shù)配合CREATE DATABASE語(yǔ)句使用,需要的朋友可以參考下2015-12-12