提供即用型 .bat 腳本,覆蓋單表備份/還原、全庫備份、壓縮打包、環境變量配置,適合 Windows 服務器定時任務部署。
# 計算機 → 屬性 → 高級系統設置 → 環境變量 → 系統變量 Path → 編輯 → 新增
C:\Program Files\MySQL\MySQL Server 5.7\bin
# 或將 .bat 直接放在 bin 目錄下運行
bk_table.bat
@echo off
REM 導出表結構+數據 (去掉 -t 只導數據)
mysqldump -h127.0.0.1 -P3306 -uroot -proot --default-character-set=gbk database1 table1 > table1.sql
mysqldump -h127.0.0.1 -P3306 -uroot -proot --default-character-set=gbk database2 table2 > table2.sql
mysqldump -h127.0.0.1 -P3306 -uroot -proot --default-character-set=gbk database2 table3 > table3.sql
echo 備份完成!
pause
restore.bat
@echo off
mysql -h127.0.0.1 -P3306 -uroot -proot database1 < table1.sql
mysql -h127.0.0.1 -P3306 -uroot -proot database2 < table2.sql
mysql -h127.0.0.1 -P3306 -uroot -proot database2 < table3.sql
echo 還原完成!
pause
bk_table_rar.bat (需安裝 WinRAR 並配置 PATH)
@echo off
mysqldump -h127.0.0.1 -P3306 -uroot -proot --default-character-set=gbk -t database1 table1 > table1.sql
mysqldump -h127.0.0.1 -P3306 -uroot -proot --default-character-set=gbk -t database2 table2 > table2.sql
mysqldump -h127.0.0.1 -P3306 -uroot -proot --default-character-set=gbk -t database2 table3 > table3.sql
winrar a Db_Bak_%date:~0,10%.rar *.sql
del *.sql
echo 壓縮備份完成:Db_Bak_%date:~0,10%.rar
pause
報錯 "'WinRAR' 不是內部命令" 解決: 將 WinRAR 安裝目錄 (如 C:\Program Files\WinRAR) 加入系統 PATH。
bk_database.bat
@echo off
mysqldump -h127.0.0.1 -P3306 -uroot -proot --routines --triggers --events --single-transaction database1 > database1_%date:~0,10%.sql
echo 全庫備份完成!
pause
cmd.exe,參數 /c "C:\backup\bk_database_rar.bat"backup.sh
#!/bin/bash
DATE=$(date +%F)
BAK_DIR=/backup/mysql
DB_USER=root
DB_PASS=password
DB_NAME=my_db
mkdir -p $BAK_DIR
mysqldump -u$DB_USER -p$DB_PASS --single-transaction --routines --triggers --events $DB_NAME | gzip > $BAK_DIR/${DB_NAME}_${DATE}.sql.gz
# 保留 30 天
find $BAK_DIR -name "*.gz" -mtime +30 -delete
加入 crontab:0 2 * * * /backup/backup.sh >> /backup/backup.log 2>&1