批量备份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="https://waterbear.pw/tag/mysql" title="查看更多关于MySQL的文章" target="_blank">MySQL</a> <a href="https://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="https://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