windows计划任务实现mysql数据库自动备份批处理命令

作者:袖梨 2022-11-14

方法一

具体代码
备份

代码如下 复制代码

@echo off & setlocal ENABLEEXTENSIONS

:: ---------- 配置项 ----------

:: 备份放置的路径,加
set BACKUP_PATH=D:Backup

:: 要备份的数据库名称,多个用空格分隔
set DATABASES=database1 database2 database3

:: MySQL 用户名
set USERNAME=root

:: MySQL 密码
set PASSWORD=123456

:: MySQL Bin 目录,加
:: 如果可以直接使用 mysqldump(安装时添加 MySQL Bin 目录到了环境变量),此处留空即可
set MYSQL=D:SERVERMySQLbin

:: WinRAR 自带命令行工具的可执行文件路径,长文件名注意用 Dos 长文件名书写方式
set WINRAR=C:Progra~1WinRARRar.exe

:: ---------- 以下请勿修改 ----------

set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%
:: 如果在 dos 下输入 time 返回的不是 24 小时制(没有 0 填充),请自行修改此处
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%

set DIR=%BACKUP_PATH%%YEAR%%MONTH%%DAY%
set ADDON=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND%

:: create dir
if not exist %DIR% (
mkdir %DIR% 2>nul
)
if not exist %DIR% (
echo Backup path: %DIR% not exists, create dir failed.
goto exit
)
cd /d %DIR%

:: backup
echo Start dump databases...
for %%D in (%DATABASES%) do (
echo Dumping database %%D ...
%MYSQL%mysqldump -u%USERNAME% -p%PASSWORD% %%D > %%D.%ADDON%.sql 2>nul
:: winrar
if exist %WINRAR% (
%WINRAR% a -k -r -s -m1 -ep1 %%D.%ADDON%.rar %%D.%ADDON%.sql 2>nul
del /F /S /Q %%D.%ADDON%.sql 2>nul
)
)
echo Done

:exit

增加计划任务

代码如下 复制代码

@echo off

:: ------- 配置项 -------

:: 要执行的文件名
set FILE=D:croncron_backup.bat

:: 计划频率类型
set FREQUENCY=DAILY

:: 频率,与上面的计划频率类型对应
set MODIFIER=1

:: 该计划执行的时间(24 小时制)
set DATETIME=00:30:00

:: 计划的名字
set NAME="Backup Cron Job"

:: 计划执行用户,不建议修改
set USER="System"

:: ------- 以下请勿修改 -------

schtasks /Create /RU %USER% /SC %FREQUENCY% /MO %MODIFIER% /ST %DATETIME% /TN %NAME% /TR %FILE%
pause

方法二

下面我们个更简单快捷的方法

建一个记事本,然后重命名为: mysql_backup.bat 然后单击右键选择编辑,把下面的部分粘贴进来然后修改保存,比如我要备份taobao这个数据库,脚本如下:

代码如下 复制代码

net stop mysql

xcopy D:mysqldatataobao*.* D:db_backup%date:~0,10% /y

net start mysql


上面的D盘和db_backup等目录大家都可以自行修改,脚本的意思就是复制taobao 这个目录到D盘的db_backup这个目录里面的以当天为名称的目录里面,比如: d:backup2010-05-23 ,请大家注意,网上很多人转载的说以%date:~4,10%这个来作为当天目录是错误的。

然后新建一个计划任务,把mysql_backup.bat加入进去,设置为每天凌晨几点运行下就行了,此部分不再详述,


方法三

假想环境:
MySQL 安装位置:C:MySQL
论坛数据库名称为:bbs
数据库备份目的地:C:db_bak
============================
新建db_bak.bat,写入以下代码

代码如下 复制代码
net stop mysql
xcopy c:mysqldatabbs*.* c:db_bakbbs%date:~0,3% /y
net start mysql

然后使用Windows的“计划任务”定时执行该批处理脚本即可。(例如:每天凌晨3点执行back_db.bat)
解释:备份和恢复的操作都比较简单,完整性比较高,控制备份周期比较灵活,例如,保存一周的数据,用%date:~0,3%,保存每天的数据, 用%date:~4,10%。此方法适合有独立主机但对mysql没有管理经验的用户。缺点是占用空间比较多,备份期间mysql会短时间断开(例如:针 对30M左右的数据库耗时5s左右)。


==============
假想环境:
MySQL 安装位置:C:MySQL
论坛数据库名称为:bbs
MySQL root 密码:123456
数据库备份目的地:D:db_backup

脚本:

代码如下 复制代码

@echo off
C:MySQLbinmysqladmin -u root --password=123456 shutdown
C:MySQLbinmysqldump --opt -u root --password=123456 bbs > D:db_backupbbs.sql
C:MySQLbinmysqld-nt

将以上代码保存为backup_db.bat
然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨5点执行back_db.bat)

----------------------------------------------------------------------------------------------------------------
利用WinRAR对MySQL数据库进行定时备份。
对于MySQL的备份,最好的方法就是直接备份MySQL数据库的Data目录。下面提供了一个利用WinRAR来对Data目录进行定时备份的方法。

首先当然要把WinRAR安装到计算机上。

将下面的命令写入到一个文本文件里

代码如下 复制代码

net stop mysql

del d:mysqldata /q

c:progra~1winrarwinrar a -ag -k -r -s d:mysql.rar d:mysqldata

net start mysql

保存,然后将文本文件的扩展名修改成CMD。

进入控制面版,打开计划任务,双击“添加计划任务”。在计划任务向导中找到刚才的CMD文件,接着为这个任务指定一个运行时间和运行时使用的账号密码就可以了

在windows下要实现定时备份我们需要借助于windows计划任务现实现了,大家可以以这个实现想到更多的东西哦。

相关文章

精彩推荐