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

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

資料備份與還原第三篇,具體如下

基礎概念:

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

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

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

防止資料丟失;

保護資料記錄。

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

SQL 備份

SQL 備份,備份的是 SQL 語句。在進行 SQL 備份的時候,系統會對錶結構以及資料進行處理,變成相應的 SQL 語句,然後執行備份。在還原的時候,只要執行備份的 SQL 語句即可,此種備份方式主要是針對表結構。

不過,MySQL 並沒有提供 SQL 備份的指令,如果我們想要進行 SQL 備份,則需要利用 MySQL 提供的軟體mysqldump.exe,而且mysqldump.exe也是一種客戶端,因此在操作伺服器的時候,必須進行認證。

基本語法:mysqldump.exe -hPup + 資料庫名字 + [表名1 + [表名2]] > 備份檔案目錄

其中,-hPup分別表示

h:IP 或者localhost;

P:埠號;

u:使用者名稱;

p:密碼。

由於mysqldump.exe也是客戶端,因此想執行上述命令,我們需要先退出 MySQL 客戶端,然後在命令列視窗執行如下命令:

mysqldump.exe -uroot -pbin.guo test class > D:/CoderLife/testMySQL/classSQL.sql

1

如上圖所示,雖然mysqldump給出了警告(在命令列中輸入密碼是不安全的),但是我們輸入的命令已經成功執行啦!在這裡,如果執行上述命令不成功的話,很有可能是我們沒有配置環境變數的問題。

2

如上圖所示,在testMySQL目錄下,已經生產了對錶class的 SQL 備份,至於 SQL 備份的內容到底是什麼,我們可以開啟classSQL.sql檔案進行檢視:

3

如上圖所示,通過 SQL 備份的檔案,包含了各種 SQL 語句,如建立表的語句以及插入資料的語句等等。

此外,在上面給出的執行 SQL 備份的基本語法中,我們可以看到表名都用[]括了起來,這表示可選項,如果不輸入表名,則預設備份整個資料庫。執行過程和上面一樣,因此我們就不予演示啦!

接下來,我們演示通過 SQL 備份的檔案還原資料,有兩種方式:

方式 1:使用mysql.exe客戶端還原資料

基本語法mysql.exe/mysql -hPup 資料庫名稱 + 資料庫名字 + [表名1 + [表名2]] < 備份檔案目錄

在命令列視窗執行如下命令,進行測試:

-- 登入 MySQL 客戶端
mysql -uroot -p

-- 輸入密碼,切換資料庫
use test;

-- 刪除表 class 中的資料
delete from class;

-- 退出資料庫
\q

-- 通過 SQL 備份的檔案還原資料
mysql -uroot -pbin.guo test < D:/CoderLife/testMySQL/classSQL.sql

4

如上圖所示,上述命令全部執行成功。下面,我們檢查還原結果,

5

如上圖所示,顯然表class的資料在刪除之後,我們通過 SQL 備份的檔案還原了資料。

方式 2:使用 SQL 命令還原資料

基本語法source + 備份檔案目錄;

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

-- 查看錶 class 資料
select * from class;

-- 刪除表 class 資料
delete from class;

-- 查看錶 class 資料
select * from class;

-- 通過 SQL 備份的檔案還原資料
source D:/CoderLife/testMySQL/classSQL.sql;

-- 查看錶 class 資料
select * from class;

6
7

如上圖所示,顯然表class的資料在刪除之後,我們通過 SQL 備份的檔案利用第二種方式還原了資料。

通過上面的學習及測試,我們可以知道 SQL 備份的優缺點:

優點:可以備份表結構;缺點:增加額外的 SQL 命令,會浪費磁碟空間。

增量備份

增量備份,不是針對資料或者 SQL 進行備份,而是針對 MySQL 伺服器的日誌進行備份,其日誌內容包括了我們對資料庫的各種操作的歷史記錄,如增刪改查等。此外,增量備份是指定時間段進行備份,因此備份的資料一般不會出現重複的情況,常用於大型專案的資料備份。在此,我們就不詳細的進行介紹了,至於這部分的內容,以後會單獨寫一篇關於如何進行增量備份的博文。

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

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