本脚本为自用脚本,我在服务器同时部署了7zip软件用于每个备份的压缩工具,当然如果你不需要压缩可以直接以文件夹形式存储即可
@echo off
echo.
echo MySQL数据库备份
echo **********************************************************
echo.
echo 今天是 %date% *.sql 备份
echo 时间是 %time% 代码编写:tony@archn.cn
echo.
echo **********************************************************
::======================================配置参数--start-------------------------------------
set dbf=30
::-- 备份数量(自动剔除最早数据)
set BackupPath=F:\备份\数据库\mysql.sql.3306
::-- 备份文件夹路径
set mysqlBin=C:\Program Files\MySQL\MySQL Server 5.5\bin
::-- mysql执行程序路径
set user=baksuser
::-- 用户名
set pass=123456789
::-- 用户密码
set dbs=(zeny_dbs,zeny_api,zeny_express,zeny_wec)
::-- 要备份的数据库,多个用英文“,”分隔例如(db0,db1,db2)
set go7z=1
::如果安装了7z就把它设置为1否则就为0
set do7z=C:\Progra~1\7-Zip\7z
::7z压缩执行程序路径
::======================================/配置参数--end-------------------------------------
set dt=%time:~0,2%
set dt=%dt: =0%
set Ymd=%date:~0,4%-%date:~5,2%-%date:~8,2%_%dt%.%time:~3,2%.%time:~6,2%
md %BackupPath%\%Ymd%
for %%n in %dbs% do "%mysqlBin%\mysqldump" --opt -Q -u"%user%" -p"%pass%" "%%n" > "%BackupPath%\%Ymd%\%%n.sql"
if %go7z%==1 (
%do7z% a -t7z "%BackupPath%\%Ymd%.7z" "%BackupPath%\%Ymd%\*" -mx=9
RMDIR /S /Q %BackupPath%\%Ymd%
::删除指定数量之前较老的文件
for /f "skip=%dbf% tokens=*" %%i in ('dir "%BackupPath%" /o-n /a-d /b') do del "%BackupPath%\%%i" /f /s /q > nul
)
::---------------------------------------附加程序
::--如果有附加程序请您自行添加到这儿
以上脚本服务器端执行 mysql.bat ,计划任务中用管理员权限定时执行即可!如果您不用7zip压缩 过期删除部分需要自行改造下
要是还有一个mysql数据库还原就更好了