Windows環(huán)境MySQL自動(dòng)備份腳本

背景
前段時(shí)間發(fā)布了一篇linux環(huán)境的mysql備份腳本,因?yàn)閘inux作為數(shù)據(jù)庫(kù)服務(wù)器是目前市場(chǎng)的主流?,F(xiàn)應(yīng)網(wǎng)友粉絲要求,分享一下windows環(huán)境mysql的備份腳本。
備份需求
- 每個(gè)庫(kù)單獨(dú)一個(gè)文件
- 壓縮備份文件
- 晚上23點(diǎn)定時(shí)備份
解決方案
創(chuàng)建一個(gè)MySQL備份腳本mysql_backup.bat,并在Windows任務(wù)計(jì)劃程序中設(shè)置自動(dòng)執(zhí)行。
1、創(chuàng)建一個(gè)新的文本文件,保存為mysql_backup.bat。
2、編輯mysql_backup.bat,將以下內(nèi)容復(fù)制到文件中。
@echo off
setlocal enabledelayedexpansion
:: 設(shè)置MySQL可執(zhí)行文件、登錄信息和備份目錄
set MYSQL_BIN_PATH="C:\Program Files\MySQL\MySQL Server 8.0\bin"
set MYSQL_USER=root
set MYSQL_PASSWORD=your_password
set BACKUP_DIR="C:\mysql_backups"
:: 設(shè)置日期格式為 yyyy-MM-dd
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set date=%%c-%%a-%%b)
set TIMESTAMP=%date%
:: 創(chuàng)建備份目錄
if not exist %BACKUP_DIR% (mkdir %BACKUP_DIR%)
:: 獲取所有數(shù)據(jù)庫(kù)列表
"%MYSQL_BIN_PATH%\mysql.exe" --user=%MYSQL_USER% --password=%MYSQL_PASSWORD% --execute="SHOW DATABASES;" --skip-column-names > %BACKUP_DIR%\databases.txt
:: 備份每個(gè)數(shù)據(jù)庫(kù)并壓縮
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
)
)
)
)
)
:: 刪除數(shù)據(jù)庫(kù)列表文件
del %BACKUP_DIR%\databases.txt
echo Backup completed.注意:根據(jù)實(shí)際情況修改MYSQL_BIN_PATH、MYSQL_USER、MYSQL_PASSWORD和BACKUP_DIR變量。
3、創(chuàng)建一個(gè)新的任務(wù)計(jì)劃程序。
- 打開(kāi)“控制面板”并選擇“任務(wù)計(jì)劃程序”。
- 在右側(cè)操作欄中點(diǎn)擊“創(chuàng)建基本任務(wù)”。
- 輸入任務(wù)名稱和描述,然后點(diǎn)擊“下一步”。
- 選擇“每天”,點(diǎn)擊“下一步”。
- 設(shè)置開(kāi)始時(shí)間為晚上23點(diǎn),點(diǎn)擊“下一步”。
- 選擇“啟動(dòng)程序”,點(diǎn)擊“下一步”。
- 點(diǎn)擊“瀏覽”,選擇mysql_backup.bat文件,然后點(diǎn)擊“下一步”。
- 點(diǎn)擊“完成”以創(chuàng)建任務(wù)。
現(xiàn)在,每天晚上23點(diǎn),任務(wù)計(jì)劃程序?qū)⒆詣?dòng)執(zhí)行mysql_backup.bat腳本,備份所有MySQL數(shù)據(jù)庫(kù)并將每個(gè)數(shù)據(jù)庫(kù)備份單獨(dú)壓縮為一個(gè)文件。




















