針對 Windows 伺服器,本文提供最簡單、可靠的 MySQL 自動備份方案:編寫批次檔停止服務 → 複製資料檔 → 重啟服務,再透過 Windows 工作排程器定時執行。
D:\Program Files\MySQL\MySQL Server 5.0\data952gameD:\db_bak\
net stop mysql xcopy D:\Program Files\MySQL\MySQL Server 5.0\data\952game\*.* D:\db_bak\952game\%date:~0,3%\ /y net start mysql
指令解析:
net stop mysql / net start mysql:停止/啟動服務,確保資料檔一致性(冷備份)。xcopy ... /y:覆蓋複製,不提示確認。%date:~0,3%:擷取星期幾(如 Mon、Tue),自動建立以星期命名的子目錄,實現 7 天輪轉備份。
| 語法 | 輸出範例 | 用途 |
|---|---|---|
%date:~0,10% | 2024-01-15 | 建立每日日期目錄 |
%date:~-3% | Mon | 建立每週輪轉目錄(本文採用) |
%time:~0,5% | 14:30 | 時分 |
%time:~0,-3% | 14:30:15 | 時分秒 |
control schedtasks 或「控制台」→「系統管理工具」→「工作排程器」。MySQL_Auto_Backup。D:\db_bak\db_bak.bat。
mysqldump --single-transaction 邏輯備份(參考方案一)。robocopy 或雲端同步工具將 D:\db_bak 複製至遠端/雲端。net stop mysql 或 net stop MySQL57)。wmic os get localdatetime 取得統一格式,或使用 PowerShell Get-Date -Format 'yyyyMMdd' 更穩健。