前言
背景:因升级项目版本,不小心将新的数据库数据覆盖了原本的数据,幸好本地MySQL有备份数据。因为部署项目设置备份不常用,怕操作忘,特写此文章记录,以防下次忘记如何使用。服务器系统为Windows10,MySQL为8.0版本。
操作实战:
1、首先我们选定一个盘符建个文件夹,比如D盘下script文件夹,创建个.bat后缀的脚步文件,内容如下:
如果只备份单个数据库的话,用以下脚本即可。
@echo off
echo 设置MySql数据库的连接信息
set host=192.168.6.222
set port=3306
set user=root
set pass=123456
echo 设置要备份MySql数据库名称
set dbname=bank_video
echo 获取当天的日期格式,例如:2022-12-13-14-30-40 这个不需要动
set backup_date=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%
echo 设置备份文件的生成路径
set backupfile=D:\mysqlDataSQL\%dbname%-%backup_date%.sql
echo 使用mysqldump对指定的MySql进行备份 注意路径中有空格的要加上双引号
"E:\develop\mysql-8.0.32-winx64\bin\mysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname% > %backupfile%
echo 删除过期文件,这里是超过30天就删除
forfiles /p D:\mysqlDataSQL\ /s /m *.sql /d -30 /c "cmd /c del @file /f"
exist
如果需要备份多个数据库的话,用以下脚本
@echo off
echo 设置MySql数据库的连接信息
set host=192.168.6.222
set port=3306
set user=root
set pass=123456
echo 设置要备份MySql数据库名称 多个的话 需要定义多个数据库名称
set dbname=bank_video
set dbname1=sansint_oa
echo 获取当天的日期格式,例如:2022-12-13-14-30-40
set backup_date=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%
echo 设置备份文件的路径
set backupfile=D:\mysqlDataSQL\%dbname%-%backup_date%.sql
set backupfile1=D:\mysqlDataSQL\%dbname1%-%backup_date%.sql
echo 使用mysqldump对指定的MySql进行备份,注意路径中有空格的要加上双引号 多个数据库需要写多个 因为这样可以导出每个数据库对应的sql 方便查看
"E:\develop\mysql-8.0.32-winx64\bin\mysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname% > %backupfile%
"E:\develop\mysql-8.0.32-winx64\bin\mysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname1% > %backupfile1%
echo 删除过期文件,这里是超过30天就删除
forfiles /p D:\mysqlDataSQL\ /s /m *.sql /d -30 /c "cmd /c del @file /f"
exist
如需验证脚本是否生效的话,在编写好bat脚本后,双击看导出文件夹内是否有sql文件生成即可
2、配置定时任务
3、 创建基本任务
4、 输入任务名称,点击下一步
5、 设置触发器
6、 设置执行时间,点击下一步
7、 选择脚本所在位置,点击下一步
8、 设置安全选项
9、 输入密码确定
10、 任务设置成功
然后根据设置的时间去测试是否成功即可!