前段時間發布了一篇linux環境的MySQL備份腳本,因為linux作為數據庫服務器是目前市場的主流。現應網友粉絲要求,分享一下windows環境mysql的備份腳本。
備份需求
- 每個庫單獨一個文件
- 壓縮備份文件
- 晚上23點定時備份
解決方案
創建一個MySQL備份腳本mysql_backup.bat,并在Windows任務計劃程序中設置自動執行。
1、創建一個新的文本文件,保存為mysql_backup.bat。
2、編輯mysql_backup.bat,將以下內容復制到文件中。
@echo off
setlocal enabledelayedexpansion
:: 設置MySQL可執行文件、登錄信息和備份目錄
set MYSQL_BIN_PATH="C:Program FilesMySQLMySQL Server 8.0bin"
set MYSQL_USER=root
set MYSQL_PASSword=your_password
set BACKUP_DIR="C:mysql_backups"
:: 設置日期格式為 yyyy-MM-dd
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set date=%%c-%%a-%%b)
set TIMESTAMP=%date%
:: 創建備份目錄
if not exist %BACKUP_DIR% (mkdir %BACKUP_DIR%)
:: 獲取所有數據庫列表
"%MYSQL_BIN_PATH%mysql.exe" --user=%MYSQL_USER% --password=%MYSQL_PASSWORD% --execute="SHOW DATABASES;" --skip-column-names > %BACKUP_DIR%databases.txt
:: 備份每個數據庫并壓縮
for /F "tokens=*" %%A in (%BACKUP_DIR%databases.txt) do (
if not "%%A"=="information_schema" (
if not "%%A"=="performance_schema" (
if not "%%A"=="mysql" (
if not "%%A"=="sys" (
echo Backing up %%A...
"%MYSQL_BIN_PATH%mysqldump.exe" --user=%MYSQL_USER% --password=%MYSQL_PASSWORD% --databases %%A --result-file=%BACKUP_DIR%%%A_%TIMESTAMP%.sql
"%MYSQL_BIN_PATH%gzip.exe" %BACKUP_DIR%%%A_%TIMESTAMP%.sql
)
)
)
)
)
:: 刪除數據庫列表文件
del %BACKUP_DIR%databases.txt
echo Backup completed.
注意:根據實際情況修改MYSQL_BIN_PATH、MYSQL_USER、MYSQL_PASSWORD和BACKUP_DIR變量。
3、創建一個新的任務計劃程序
- 打開“控制面板”并選擇“任務計劃程序”。
- 在右側操作欄中點擊“創建基本任務”。
- 輸入任務名稱和描述,然后點擊“下一步”。
- 選擇“每天”,點擊“下一步”。
- 設置開始時間為晚上23點,點擊“下一步”。
- 選擇“啟動程序”,點擊“下一步”。
- 點擊“瀏覽”,選擇mysql_backup.bat文件,然后點擊“下一步”。
- 點擊“完成”以創建任務。
現在,每天晚上23點,任務計劃程序將自動執行mysql_backup.bat腳本,備份所有MySQL數據庫并將每個數據庫備份單獨壓縮為一個文件。