在Windows Server 2008R2操作系統(tǒng)環(huán)境中,針對(duì)MySQL5.5數(shù)據(jù)庫(kù)的備份操作可通過(guò)官方提供的mysqldump工具高效實(shí)現(xiàn)。本文以已部署的WordPress網(wǎng)站為例,數(shù)據(jù)庫(kù)安裝路徑為D:\PHPWEB\MySQL Server 5.5,管理員賬號(hào)為root,密碼為123456,目標(biāo)備份對(duì)象為WordPress網(wǎng)站數(shù)據(jù)庫(kù)。需特別說(shuō)明的是,備份過(guò)程中無(wú)需停止MySQL服務(wù),確保業(yè)務(wù)連續(xù)性的同時(shí)完成數(shù)據(jù)保護(hù)。

##### 1. 數(shù)據(jù)庫(kù)環(huán)境確認(rèn)
通過(guò)命令行執(zhí)行`mysql -uroot -p123456`登錄MySQL數(shù)據(jù)庫(kù),成功后輸入`show databases;`可查看當(dāng)前所有數(shù)據(jù)庫(kù)列表(如圖90所示)。亦可借助phpMyAdmin圖形化工具直觀確認(rèn)數(shù)據(jù)庫(kù)及表結(jié)構(gòu)(如圖91、92所示)。
##### 2. 單數(shù)據(jù)庫(kù)備份
進(jìn)入MySQL安裝目錄的bin路徑(D:\PHPWEB\MySQL Server 5.5\bin),執(zhí)行備份命令:
```bash
mysqldump -u 用戶名 -p 數(shù)據(jù)庫(kù)名 > 導(dǎo)出文件名
```
示例:`mysqldump -uroot -p123456 wordpress > test.sql`
命令執(zhí)行成功后,系統(tǒng)無(wú)返回提示,目標(biāo)文件test.sql將自動(dòng)生成于當(dāng)前目錄(如圖95-96所示)。若需指定備份路徑,可直接在命令中添加完整目錄,如`> D:\backup\wordpress.sql`。
##### 3. 全庫(kù)備份
若需備份服務(wù)器中所有數(shù)據(jù)庫(kù),使用`--all-databases`參數(shù):
```bash
mysqldump -uroot -p123456 --all-databases > allbackupfile.sql
```
執(zhí)行后,allbackupfile.sql將包含所有數(shù)據(jù)庫(kù)的結(jié)構(gòu)與數(shù)據(jù)(如圖97-98所示)。
##### 4. 特定表備份
針對(duì)單數(shù)據(jù)庫(kù)中的部分表,可在命令中直接指定表名:
```bash
mysqldump -uroot -p123456 數(shù)據(jù)庫(kù)名 表名1 表名2 > backupfile.sql
```
示例:備份WordPress數(shù)據(jù)庫(kù)中的wp_options和wp_posts表,生成backupfile.sql(如圖99-101所示)。
##### 5. 多數(shù)據(jù)庫(kù)備份
同時(shí)備份多個(gè)數(shù)據(jù)庫(kù),需添加`--databases`參數(shù)并羅列數(shù)據(jù)庫(kù)名:
```bash
mysqldump -uroot -p123456 --databases db1 db2 db3 > multibackupfile.sql
```
該操作將生成包含指定數(shù)據(jù)庫(kù)完整信息的備份文件(如圖102-106所示)。
##### 1. 單數(shù)據(jù)庫(kù)定時(shí)備份
需實(shí)現(xiàn)每日凌晨2:00自動(dòng)備份WordPress數(shù)據(jù)庫(kù)時(shí),可創(chuàng)建批處理文件`backdb.bat`,內(nèi)容如下:
```batch
@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
D:\PHPWEB\MySQLServer5.5\bin\mysqldump --opt -uroot -p123456 wordpress > D:\db_backup\wordpress_backup.sql
@echo on
```
注意:MySQL安裝路徑中不得包含空格,否則可能導(dǎo)致命令執(zhí)行失敗(如圖109所示)。
通過(guò)Windows任務(wù)計(jì)劃程序創(chuàng)建定時(shí)任務(wù):打開(kāi)“任務(wù)計(jì)劃程序”,創(chuàng)建基本任務(wù),設(shè)置觸發(fā)器為“每天凌晨2:00”,操作為啟動(dòng)`backdb.bat`,并確保任務(wù)以具有管理員權(quán)限的用戶運(yùn)行(如圖110-114所示)。執(zhí)行后,D:\db_backup目錄將生成備份文件(如圖114所示)。
##### 2. 全庫(kù)定時(shí)備份
全庫(kù)定時(shí)備份可通過(guò)`allbackdb.bat`批處理文件實(shí)現(xiàn),內(nèi)容如下:
```batch
@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
D:\PHPWEB\MySQLServer5.5\bin\mysqldump --opt -uroot -p123456 --all-databases > D:\db_backup\allbackupfile.sql
@echo on
```
配置計(jì)劃任務(wù)后,每日凌晨2:00將自動(dòng)生成全庫(kù)備份文件(如圖115-116所示)。
- 單數(shù)據(jù)庫(kù)備份:`mysqldump -uroot -p123456 數(shù)據(jù)庫(kù)名 > 備份路徑.sql`
- 多數(shù)據(jù)庫(kù)備份:`mysqldump -uroot -p123456 --databases db1 db2 > 備份路徑.sql`
- 特定表備份:`mysqldump -uroot -p123456 數(shù)據(jù)庫(kù)名 表名1 表名2 > 備份路徑.sql`
- 全庫(kù)備份:`mysqldump -uroot -p123456 --all-databases > 備份路徑.sql`
- 數(shù)據(jù)還原:`mysql -uroot -p123456 數(shù)據(jù)庫(kù)名 < 備份文件.sql`