Oo笑容太甜oO/

Windows MySql自动备份


1.环境

  • Windows Server/7/8/10
  • MySql5.7

2.备份脚本建立

建立backup_tool.bat的脚本,使用MySql的mysqldump进行备份。

rem ****Backup start****

@echo off

forfiles /p "D:\mysql_backup" /m test_backup_*.sql -d -7 /c "cmd /c del /f @path"

set "date_fmt=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"

D:\soft\mysql-5.7.20\bin\mysqldump --opt --single-transaction=TRUE --user=root --password=111111 --host=localhost --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "test" > D:\mysql_backup\test_backup_%date_fmt%.sql

@echo on

rem ****MySQL backup end****
  • forfiles删除过期文件的命令。
  • -d -7删除7天的文件。
  • D:\soft\mysql-5.7.20\bin为mysqldump.exe安装路径。
  • --user=root指 MySQL 的root用户。
  • --password=111111 MySql密码为111111。
  • test为要备份的数据库的名称。
  • test_backup_%date_fmt%.sql,为备份文件的名称,这个名称是根据当前的时间规则生成的。当然我们也可以精确到天,只需修改date_fmt的格式即可。
  • mariadb也是一样,注意mysqldump.exe 的路径。
  • 早期文件不删除,则去除forfiles语句。
  • 自动备份的sql文件,可用坚果云同步,确保万无一失。
@echo off
set hour=%time:~0,2%
if "%time:~0,1%"==" " set hour=0%time:~1,1%
set now=%Date:~0,4%%Date:~5,2%%Date:~8,2%%hour%%Time:~3,2%%Time:~6,2%
echo %now%
set host=127.0.0.1
set port=3306
set user=root
set pass=!bxh123456
set dbname=build
set backupfile=C:\mysql_backup\%dbname%-%now%.sql
"C:\wamp64\bin\mariadb\mariadb10.4.10\bin\mysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname% > %backupfile%
echo delete files before 10 days
forfiles /p "C:\mysql_backup" /m *.sql /d -10 /c "cmd /c del @file"

3.创建Windows定时任务

(1)打开“任务计划程序”

(2)创建基本任务

2.png

(3)填写任务名称及描述

3.png

(4)选择任务周期

4.png

(5)设置任务开始时间

5.png

(6)设置任务的操作

6.png

(7)选择启动脚本

7.png

(8)完成设置

8.png

转自 简书 nickbi