• 欢迎访问水熊虫网站,这里是我个人的工作博客,内容大多是遇到问题完善后,会在这里进行总结归纳内容! QQ群
  • 网站导航中的友情链接专栏上线,更新的都是自己这三年整理的一些东西,感兴趣可以看看!
  • 你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经!

♡批量备份MySQL数据库的批处理命令

MySQL WaterBear 7年前 (2017-08-04) 861次浏览 已收录 扫描二维码

批量备份MySQL 数据库的批处理文件

目的:在指定的目录建立一个以当前日期为名的新文件夹,将 wwwroot 下所有目录和 自动导出的 MySQL 数据库分别压缩到此文件夹中实现备份。

需要修改和设置的地方:MySQL 用户名“mysqluser”、MySQL 密码“mysqlpassword”、建立一个名为“sqldata.txt”的文本文件,存放 MySQL 要备份的 MySQL 数据库名称,一个数据库名一行,以下是使用WinRAR 压缩程序代码和MySQL数据库相关目录位置。
以下使用WinRAR 压缩程序代码

@echo off
echo 备份所有网站..
rem WinRAR 压缩程序的位置
set rarcmd=c:\progra~1\winrar\winrar.exe

rem 网站目录 WWWROOT 位置
set wwwroot=D:\wwwroot\

rem 保存备份文件的文件夹
set backupdir=E:\Backup\www\

rem MySQL 备份命令 mysaldump 的位置
set sqldumpcmd="C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe"

rem MySQL 用户名
set user=mysqluser

rem MySQL 密码
set pass=mysqlpassword

rem 获得当前日期
set today=%date:~0,4%%date:~5,2%%date:~8,2%

rem 建立当前日期为名称的文件夹,用于保存备份文件
md %backupdir%%today%

rem 获得 WWWROOT 目录所有网站文件夹
dir/b %wwwroot% > wwwdata.txt

echo 准备备份的网站已保存为 wwwdata.txt,你可以根据需要编辑此文件...
pause

rem 分别把网站文件夹压缩到备份目录
for /f %%f in (wwwdata.txt) do %rarcmd% a -r -s -m5 -v51200k -vn %backupdir%%today%\%%f.rar %wwwroot%%%f

echo ===============================================

echo 备份所有MySQL数据库...

rem 导出 SQL 数据文件
for /f %%f in (sqldata.txt) do %sqldumpcmd% -u%user% -p%pass% -l -q %%f > %%f.sql

echo 压缩 <a href="http://waterbear.pw/tag/mysql" title="查看更多关于MySQL的文章" target="_blank">MySQL</a> <a href="http://waterbear.pw/tag/%e6%95%b0%e6%8d%ae%e5%ba%93" title="查看更多关于数据库的文章" target="_blank">数据库</a>...
for /f %%f in (sqldata.txt) do %rarcmd% u -df -m5 %backupdir%%today%\%%f.mysql.rar %%f.sql

echo 删除为压缩导出的 MySQL <a href="http://waterbear.pw/tag/%e6%95%b0%e6%8d%ae%e5%ba%93" title="查看更多关于数据库的文章" target="_blank">数据库</a>文件...
for /f %%f in (sqldata.txt) do del %%f.sql

rem 清理变量
set rarcmd=
set wwwroot=
set backupdir=
set today=
set sqldumpcmd=
set user=
set pass=
pause
2011-09-15 在 2011-07-05 的 Update:压缩 MySQL 数据库前停止 MySQL 服务是错误的,这样 mysaldump 将无法连接到数据库。现在更新为添加 -l -q 参数尝试。并且也许使用 7-zip 来压缩更节省空间。
以下是使用 7-zip 压缩程序的代码
@echo off
echo 备份所有网站...

rem WinRAR 压缩程序的位置
set rarcmd=D:\tools\7-zip\7z.exe

rem 网站目录 WWWROOT 位置
set wwwroot=D:\wwwroot\

rem 保存备份文件的文件夹
set backupdir=E:\Backup\www\

rem MySQL 备份命令 mysaldump 的位置
set sqldumpcmd="C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe"

rem MySQL 用户名
set user=mysqluser

rem MySQL 密码
set pass=mysqlpassword

rem 获得当前日期
set today=%date:~0,4%%date:~5,2%%date:~8,2%

rem 建立当前日期为名称的文件夹,用于保存备份文件
md %backupdir%%today%

rem 获得 WWWROOT 目录所有网站文件夹
dir/b %wwwroot% > wwwdata.txt

echo 准备备份的网站已保存为 wwwdata.txt,你可以根据需要编辑此文件...
pause

rem 分别把网站文件夹压缩到备份目录
for /f %%f in (wwwdata.txt) do %rarcmd% a -r -y -v51200k %backupdir%%today%\%%f.7z %wwwroot%%%f

echo ===============================================

echo 备份所有MySQL数据库...


rem 导出 SQL 数据文件
for /f %%f in (sqldata.txt) do %sqldumpcmd% -u%user% -p%pass% -l -q %%f > %%f.sql


echo 压缩 MySQL 数据库...
for /f %%f in (sqldata.txt) do %rarcmd% a %backupdir%%today%\%%f.mysql.7z %%f.sql

echo 删除为压缩导出的 MySQL 数据库文件...
for /f %%f in (sqldata.txt) do del %%f.sql

rem 清理变量
set rarcmd=
set wwwroot=
set backupdir=
set today=
set sqldumpcmd=
set user=
set pass=
pause

[v_organge]附上还原数据库的命令:[/v_organge]

mysql.exe -uroot -p123456 --default-character-set=utf8 dbname < F:/dbname_20100312.sql 

WaterBear , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:♡批量备份MySQL数据库的批处理命令
喜欢 (0)
[[email protected]]
分享 (0)