首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Windows CMD 下 MySQL 備份與還原命令實戰手冊

     編輯:MySQL 資料庫相關知識

環境假設

  • MySQL 安裝路徑:C:\mysql (已加入 PATH)
  • 用戶:root / 密碼:123456
  • 資料庫:database_name
  • 備份目標:D:\backup_20240115.sql

備份命令

# 基本備份 (結構+數據)
mysqldump -u root -p123456 database_name > D:\backup_20240115.sql

# 常用增強參數
mysqldump -u root -p123456 \
  --single-transaction \      # InnoDB 熱備,不鎖表
  --routines --triggers \     # 包含存儲過程/觸發器
  --events \                  # 包含事件調度器
  --master-data=2 \           # 記錄 Binlog 位置 (從庫搭建用)
  --hex-blob \                # 二進位欄位導出為 16 進位
  database_name > D:\backup_20240115.sql

還原命令

# 1. 刪除舊庫 (謹慎!)
mysqladmin -u root -p123456 drop database_name

# 2. 建立新庫 (字符集建議顯式指定)
mysqladmin -u root -p123456 create database_name

# 3. 導入備份
mysql -u root -p123456 database_name < D:\backup_20240115.sql

關鍵注意事項

項目說明
密碼安全命令列明文密碼會殘留在歷史記錄。生產環境請用 --defaults-extra-file 指定密碼文件,或環境變量 MYSQL_PWD (5.6+ 棄用)。
備份文件編碼確保備份文件為 UTF-8 (BOM)。導入時若亂碼,檢查 SET NAMES 或 --default-character-set。
大文件導入> 500MB 建議用 source 命令在 mysql shell 內分批,或拆分文件。
版本相容高版本備份導入低版本可能報錯 (如 8.0 → 5.7)。建議同版本或用兼容模式 --compatible=mysql57。
GTID 啟用庫還原前需 SET @@GLOBAL.gtid_purged=''; 或使用 --set-gtid-purged=OFF 導出。

自動化備份腳本範例

@echo off
set DATE_STR=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
set BACKUP_DIR=D:\mysql_backup
set DB_NAME=my_database

mkdir %BACKUP_DIR% 2>nul
mysqldump -u root -p123456 --single-transaction --routines --triggers --events %DB_NAME% > %BACKUP_DIR%\%DB_NAME%_%DATE_STR%.sql

:: 保留最近 7 天
forfiles /p %BACKUP_DIR% /m %DB_NAME%_*.sql /d -7 /c "cmd /c del @path"

echo [%DATE% %TIME%] Backup completed. >> %BACKUP_DIR%\backup.log

配合 Windows 任務計畫程式每日執行。

驗證備份可用性

# 快速驗證:只檢查語法不導入
mysql -u root -p123456 --execute="SET @dummy=0;" < D:\backup_20240115.sql

# 或建立臨時庫導入測試
mysqladmin -u root -p123456 create test_restore
mysql -u root -p123456 test_restore < D:\backup_20240115.sql
# 抽查幾張表行數
mysqladmin -u root -p123456 drop test_restore
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved