史上最簡單的 MySQL 教程(三十七)

2021-08-10 11:51:09 字數 2536 閱讀 5950

基礎概念:

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

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

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

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

其中,-hpup分別表示

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

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

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

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

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

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

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

-- 登入 mysql 客戶端

mysql -uroot -p

-- 輸入密碼,切換資料庫

use test;

-- 刪除表 class 中的資料

delete from class;

-- 退出資料庫

\q-- 通過 sql 備份的檔案還原資料

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

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

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

-- 檢視表 class 資料

select * from class;

-- 刪除表 class 資料

delete from class;

-- 檢視表 class 資料

select * from class;

-- 通過 sql 備份的檔案還原資料

source d

:/coderlife/testmysql/classsql.sql;

-- 檢視表 class 資料

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

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

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

史上最簡單的 MySQL 教程(三十) 聯合查詢

聯合查詢,預設去重 select from class union distinct select from class 聯合查詢,保留所有記錄 select from class union allselect from class 聯合查詢,字段數相同,型別不同 select id,grade,...

史上最簡單的 MySQL 教程(十七) 索引

索引 系統根據某種演算法,將已有的資料 未來可能新增的資料 單獨建立乙個檔案,這個檔案能夠實現快速匹配資料,並且能夠快速的找到對應的記錄,幾乎所有的索引都是建立在字段之上的。索引的意義 但是增加索引是有前提條件的,這是因為索引本身會產生索引檔案 有的時候可能會比資料本身都大 因此非常耗費磁碟空間。m...

史上最簡單的 MySQL 教程(十七) 索引

索引 系統根據某種演算法,將已有的資料 未來可能新增的資料 單獨建立乙個檔案,這個檔案能夠實現快速匹配資料,並且能夠快速的找到對應的記錄,幾乎所有的索引都是建立在字段之上的。索引的意義 提公升查詢資料的效率 約束資料的有效性。但是增加索引是有前提條件的,這是因為索引本身會產生索引檔案 有的時候可能會...