要在Windows系统上备份MySQL数据库并将其压缩,还要删除七天前的备份文件,你可以在原有批处理脚本的基础上添加压缩功能。这里使用Windows内置的tar
命令(Windows 10及以上版本支持)进行压缩。
1. 创建备份并压缩的脚本
@echo off
:: 配置部分
set db_user=root
set db_password=your_password
set db_name=your_database
set backup_path=C:\mysql_backups
set mysqldump_path="C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe"
set date=%date:~0,4%-%date:~5,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%
set filename=%db_name%_%date%
:: 创建备份目录(如果不存在)
if not exist "%backup_path%" (
mkdir "%backup_path%"
)
:: 执行备份
%mysqldump_path% -u%db_user% -p%db_password% %db_name% > "%backup_path%\%filename%.sql"
:: 压缩备份文件为tar.gz格式,需要电脑有tar命令
:: tar -czf "%backup_path%\%filename%.tar.gz" -C "%backup_path%" "%filename%.sql"
:: windows自带命令压缩,直接压缩原有文件
compact /c "%backup_path%\%filename%.sql
:: 解压缩备份文件
:: compact /u "%backup_path%\%filename%
:: 删除原始的SQL文件,配合tar压缩方式使用
:: del "%backup_path%\%filename%.sql"
:: 删除七天前的备份文件
forfiles /p "%backup_path%" /s /m *.tar.gz /d -7 /c "cmd /c del @path"
:: 完成
echo Backup, compression, and cleanup completed.
2. 修改脚本中的配置
与之前相同:
db_user
:MySQL的用户名。db_password
:MySQL用户的密码。db_name
:要备份的数据库名称。backup_path
:备份文件的存储路径。mysqldump_path
:mysqldump
工具的路径。
3. 运行脚本
将上述脚本保存为.bat
文件(例如mysql_backup_compress.bat
),然后双击运行即可执行备份、压缩和清理操作。
4. 设置定时任务
与前面一样,你可以使用Windows任务计划程序来定期运行这个脚本,确保MySQL备份自动化并且保持备份文件管理良好。
这个脚本完成了以下任务:
- 生成MySQL数据库的备份。
- 将备份压缩为
.tar.gz
文件。 - 删除七天前的备份文件,以确保存储空间的合理使用。