在Windows中安装的mysql,可通过bat备份清理脚本和Windows定时任务完成自动备份及清理。
1 脚本
@echo off
:: 数据库IP
set host=127.0.0.1
:: 数据库端口号
set port=3306
:: 用户名
set user=root
:: 密码
set pass=root
:: 要备份的数据库名称
set dbname=test
:: 设置备份文件放置的路径
set backup_dir=E:\mysql-bak\test
:: 备份日志
set logfile=%backup_dir%\%dbname%-log.txt
:: 备份保留天数
set backupDays=30
:: 如果文件夹不存在则创建
if not exist %backup_dir% md %backup_dir%
:: 获取当天的日期格式
set hour=%time:~0,2%
if "%time:~0,1%"==" " set hour=0%time:~1,1%
set backup_date=%date:~3,4%%date:~8,2%%date:~11,2%%time:~0,2%%time:~3,2%%time:~6,2%
echo =========== %backup_date% %dbname% =========== >> %logfile%
:: 设置备份文件的路径
set backupfile=%backup_dir%\%dbname%_backup_%backup_date%.sql
echo 备份文件名称为:%backupfile% >> %logfile%
echo 使用mysqldump对指定的MySql进行备份 >> %logfile%
mysqldump -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname% > %backupfile%
echo 数据备份完成 >> %logfile%
echo 查询过期文件并删除 >> %logfile%
:: 打印符合条件的文件到日志
forfiles /p %backup_dir% /s /m %dbname%_backup_.* /d -%backupDays% /c "cmd /c echo @file" >> %logfile%
:: 清理过期文件
forfiles /p %backup_dir% /s /m %dbname%_backup_*.sql /d -%backupDays% /c "cmd /c del @file /f"
echo 删除完成 >> %logfile%
2 创建定时任务
打开【控制面板】 > 【管理工具 】> 【任务计划程序】或直接搜索任务计划程序,选择【操作】>【创建基本任务】
设置定时任务名称:
触发器默认选择“每天”(根据实际而定):
设置定时任务开始执行日期及执行时间:
操作选择“启动程序”:
选择执行的备份的脚本:
确认信息无误后,点击完成即可。
可手动右击任务,立即执行一次,验证脚本是否有问题,检查执行后的备份文件是否有问题;为了保险起见,还可以将备份的sql导入到数据库,验证备份的sql是否有问题。