1. 定时备份
1.1 创建备份脚本
创建脚本:back.bat
rem ******MySQL backup start******
@echo off
::删除一周前的备份数据
forfiles /p "c:\sql_back" /m backup_*.sql -d -7 /c "cmd /c del /f @path"
::设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"
::进入mysql安装目录的bin目录下
cd F:\mysql-5.7.34-winx64\bin\
::执行备份操作
mysqldump --opt --single-transaction=TRUE --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "hcmp_fj" > c:\sql_back\backup_%Ymd%.sql
@echo on
rem ******MySQL backup end******
PS:根据脚本中的保存路径创建目录c:\sql_back
参数说明:
1.forfiles 为删除过期文件的命令,-d -7 删除7天的文件;
2.设置时间变量默认即可;
3.mysqldump 为MySQL提供的备份命令,该命令所在目录为MySQL安装目录下的bin文件夹中,此处直接使用该命令的前提是该命令所在bin文件夹已被设置为系统环境变量,如未设置,则要写全路径;
4.–user=root 为 MySQL 用户名;
5.–password=123456 为 MySQL 密码;
6.–host=127.0.0.1 为 MySQL 主机名;
7.“hcmp_fj” 为要备份的数据库的名称;
8.backup_%Ymd%.sql 是根据当前时间规则生成备份文件的名称
1.2 创建定时任务
在Windows中创建定时任务有两种方式:
1.2.1 在计算机管理中创建定时任务
打开Win+r,运行“compmgmt.msc”,找到“任务计划程序库”,右键“创建任务”:
填写任务名称:
创建触发器:
设置操作:
可以在计划任务程序库中看到任务信息:
1.2.2 使用命令行创建定时任务
在cmd中直接运行:
每7分钟执行:
schtasks /create /tn backsql /tr G:\Desktop\back.bat /sc MINUTE /mo 7
每天1点执行:
schtasks /create /tn backsql /tr G:\Desktop\back.bat /sc DAILY /st 01:00
参数说明:
schtasks /create 创建任务
/tn 任务名称
/tr 脚本或exe路径
/sc 计划频率
/mo 频率间隔
/st 开始时间
使用命令行创建的定时任务也可以在“计划任务程序库”中看到
使用命令行关闭定时任务:
SCHTASKS /Delete /TN "backsql"
2. 恢复数据
@echo off
::要导入的sql数据脚本路径
set source_path=G:\Desktop\hcmp_fj.sql
::数据库ip
set db_host=127.0.0.1
::端口
set db_port=3306
::库名
set db_name=yyy
::用户名
set db_user=root
::密码
set db_pwd=root
::数据库不存在就创建
set create_db_sql=create database IF NOT EXISTS %db_name%
::切换到bin目录
cd F:\mysql-5.7.34-winx64\bin\
::执行SQL
mysql -h%db_host% -P%db_port% -u%db_user% -p%db_pwd% -e "%create_db_sql%"
mysql -u%db_user% -p%db_pwd% --default-character-set=utf8 %db_name% < %source_path%
ECHO 完成!
pause
1. 定时备份
1.1 创建备份脚本
创建脚本:back.bat
rem ******MySQL backup start******
@echo off
::删除一周前的备份数据
forfiles /p "c:\sql_back" /m backup_*.sql -d -7 /c "cmd /c del /f @path"
::设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"
::进入mysql安装目录的bin目录下
cd F:\mysql-5.7.34-winx64\bin\
::执行备份操作
mysqldump --opt --single-transaction=TRUE --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "hcmp_fj" > c:\sql_back\backup_%Ymd%.sql
@echo on
rem ******MySQL backup end******
PS:根据脚本中的保存路径创建目录c:\sql_back
参数说明:
1.forfiles 为删除过期文件的命令,-d -7 删除7天的文件;
2.设置时间变量默认即可;
3.mysqldump 为MySQL提供的备份命令,该命令所在目录为MySQL安装目录下的bin文件夹中,此处直接使用该命令的前提是该命令所在bin文件夹已被设置为系统环境变量,如未设置,则要写全路径;
4.–user=root 为 MySQL 用户名;
5.–password=123456 为 MySQL 密码;
6.–host=127.0.0.1 为 MySQL 主机名;
7.“hcmp_fj” 为要备份的数据库的名称;
8.backup_%Ymd%.sql 是根据当前时间规则生成备份文件的名称
1.2 创建定时任务
在Windows中创建定时任务有两种方式:
1.2.1 在计算机管理中创建定时任务
打开Win+r,运行“compmgmt.msc”,找到“任务计划程序库”,右键“创建任务”:
填写任务名称:
创建触发器:
设置操作:
可以在计划任务程序库中看到任务信息:
1.2.2 使用命令行创建定时任务
在cmd中直接运行:
每7分钟执行:
schtasks /create /tn backsql /tr G:\Desktop\back.bat /sc MINUTE /mo 7
每天1点执行:
schtasks /create /tn backsql /tr G:\Desktop\back.bat /sc DAILY /st 01:00
参数说明:
schtasks /create 创建任务
/tn 任务名称
/tr 脚本或exe路径
/sc 计划频率
/mo 频率间隔
/st 开始时间
使用命令行创建的定时任务也可以在“计划任务程序库”中看到
使用命令行关闭定时任务:
SCHTASKS /Delete /TN "backsql"
2. 恢复数据
@echo off
::要导入的sql数据脚本路径
set source_path=G:\Desktop\hcmp_fj.sql
::数据库ip
set db_host=127.0.0.1
::端口
set db_port=3306
::库名
set db_name=yyy
::用户名
set db_user=root
::密码
set db_pwd=root
::数据库不存在就创建
set create_db_sql=create database IF NOT EXISTS %db_name%
::切换到bin目录
cd F:\mysql-5.7.34-winx64\bin\
::执行SQL
mysql -h%db_host% -P%db_port% -u%db_user% -p%db_pwd% -e "%create_db_sql%"
mysql -u%db_user% -p%db_pwd% --default-character-set=utf8 %db_name% < %source_path%
ECHO 完成!
pause