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

Windows 下使用批處理腳本實現 MySQL 自動備份與清理

     編輯:MySQL 資料庫相關知識

需求場景

在 Windows Server 2003 環境下,需要定時自動備份 MySQL 資料庫,並清理舊備份檔案。雖然有現成備份軟體(如護衛神好備份),但掌握腳本寫法更靈活。

核心思路

  1. 編寫 .bat 批處理腳本,調用 mysqldump.exe 進行備份。
  2. 備份前刪除前一天的備份檔,避免磁碟佔滿。
  3. 利用 Windows 內建「任務計劃」定時執行腳本,實現全自動化。

腳本完整代碼

@echo on

REM ------------------------ 備份 bugdb (InnoDB) -----------------------------
del C:/backup/website/bugdb_*.sql
cd F:/usr/wamp/mysql/bin
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set filename=bugdb_%year%%month%%day%.sql
mysqldump.exe bugdb -uroot -p123456 > F:/backup/website/%filename%
@echo off

說明: 第 9 行也可簡寫為 set filename=bugdb%date:~0,10%.sql。

關鍵行解析

  • 第 4 行: 刪除指定目錄下所有 bugdb_ 開頭的 .sql 檔案。
  • 第 5 行: 切換到 MySQL bin 目錄,以便直接呼叫 mysqldump.exe。
  • 第 6-8 行: 從系統日期擷取年、月、日(格式 YYYYMMDD)。
  • 第 9 行: 組合備份檔名,如 bugdb_20240312.sql。
  • 第 10 行: 執行備份,> 為輸出重導向,將結果寫入檔案。

mysqldump 語法格式

mysqldump.exe "資料庫名" -u使用者 -p密碼 > "備份檔完整路徑"

設定自動化任務

  1. 將腳本存為 backup.bat(例:D:/scripts/backup_bugdb.bat)。
  2. 開啟「控制台」→「任務計劃」→「新增計劃任務」。
  3. 「執行」欄瀏覽選擇 backup.bat。
  4. 在「排程」與「設定」分頁依需求設定執行時間、頻率等。
  5. 若提示「無權限」,請勾選「僅在登入後執行」。

資料還原指令

D:/html/wamp/mysql/bin/mysql.exe -uroot -p123456 --default-character-set=utf8 bugdb < F:/bugdb_20100312.sql

小結

此方案零成本、易維護,適合中小型 Windows 環境。若需更豐富功能(壓縮、異地傳輸、郵件通知),可進一步擴充腳本或改用 PowerShell/Python。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved