windows环境通过脚本备份MySQL数据库
REM 设置数据库连接信息set MYSQL_USER=MySQL 用户名set MYSQL_PASSWORD=MySQL 密码set DATABASE_NAME=要备份的数据库名称set BACKUP_DIR=备份文件存放目录set MYSQL_PORT=MySQL端口号。
·
使用set命令定义几个环境变量
REM 设置数据库连接信息
set MYSQL_USER=MySQL 用户名
set MYSQL_PASSWORD=MySQL 密码
set DATABASE_NAME=要备份的数据库名称
set BACKUP_DIR=备份文件存放目录
set MYSQL_DUMP_PATH="E:\soft\MySQL\MySQL Server 8.0\bin\mysqldump"
set MYSQL_PORT=MySQL端口号
获取当前日期,格式为YYYYMMDD
REM 获取当前日期,格式为YYYYMMDD
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value') do set datetime=%%I
set TIMESTAMP=%datetime:~0,4%%datetime:~4,2%%datetime:~6,2%
创建备份目录(如果不存在)
if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%"
执行MySQL数据库备份
%MYSQL_DUMP_PATH% -u%MYSQL_USER% -p%MYSQL_PASSWORD% --port=%MYSQL_PORT% %DATABASE_NAME% > "%BACKUP_DIR%\%DATABASE_NAME%_%TIMESTAMP%.sql"
if errorlevel 1 (
echo 备份失败!
goto end
)
定时清理备份文件(不需要可不配置)
forfiles /p "%BACKUP_DIR%" /s /m *.sql /d -90 /c "cmd /c del @file"
if errorlevel 1 (
echo 清理备份文件失败!
goto end
)
完整脚本如下:
@echo off
setlocal
REM 设置数据库连接信息
set MYSQL_USER=
set MYSQL_PASSWORD=
set DATABASE_NAME=
set BACKUP_DIR=
set MYSQL_DUMP_PATH="MySQL\MySQL Server 8.0\bin\mysqldump"
set MYSQL_PORT=
REM 获取当前日期,格式为YYYYMMDD
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value') do set datetime=%%I
set TIMESTAMP=%datetime:~0,4%%datetime:~4,2%%datetime:~6,2%
REM 创建备份目录(如果不存在)
if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%"
REM 执行MySQL数据库备份
%MYSQL_DUMP_PATH% -u%MYSQL_USER% -p%MYSQL_PASSWORD% --port=%MYSQL_PORT% %DATABASE_NAME% > "%BACKUP_DIR%\%DATABASE_NAME%_%TIMESTAMP%.sql"
if errorlevel 1 (
echo 备份失败!
goto end
)
REM 清理超过90天的备份文件
forfiles /p "%BACKUP_DIR%" /s /m *.sql /d -90 /c "cmd /c del @file"
if errorlevel 1 (
echo 清理备份文件失败!
goto end
)
:end
endlocal
更多推荐




所有评论(0)