使用mysqldump备份数据库,以下是bat文件代码
@echo off
::设置数据库所在ip
set ip=localhost
::设置数据库端口
set port=3306
::设置数据库连接用户(为了保证导出函数,视图,存储过程,触发器请给用户设置权限)
set user=root
::设置数据库连接用户密码(密码中的%需要两个%%转义)
set password="E=eK*Y)gXI@2%%kCd-Atl~RS[[0"
::设置备份文件存储位置
set dataFolder=C:\Users\Administrator\Desktop\mysqlbak
::设置压缩软件WinRAR的安装目录
set winrarPath="C:\Program Files\WinRAR"
set sql="select schema_name from information_schema.schemata where schema_name in ('bk_sys')"
IF NOT EXIST %dataFolder% (
mkdir %dataFolder%
)
set datevar=%date:~0,4%%date:~5,2%%date:~8,2%
mysql -h %ip% -u%user% -p%password% -P %port% -e %sql% > %dataFolder%\alldataBaseName.txt
if not exist "%dataFolder%\%datevar%\" (
mkdir "%dataFolder%\%datevar%\"
)
for /f "skip=1" %%i in (%dataFolder%\alldataBaseName.txt) do (
echo 开始备份=======%%i
mysqldump -R -u%user% -p%password% -h%ip% -P%port% %%i > %dataFolder%\%datevar%\%%i_%datevar%.sql
)
::若压缩文件存在,先删除
if exist "%dataFolder%\%datevar%.rar" (
del %dataFolder%\%datevar%.rar
)
::使用WinRAR压缩文件并删除源文件
%winrarPath%\Rar.exe a -k -r -s -m5 -ep1 -df %dataFolder%\%datevar%.rar %dataFolder%\%datevar%
del %dataFolder%\alldataBaseName.txt
echo 备份结束