最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

在Windows系统中使用脚本定时备份和恢复MySQL数据库的数据

业界 admin 0浏览 0评论

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
发布评论

评论列表 (0)

  1. 暂无评论