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=你的密码
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"
如果启用MariaDB10.4时,默认root账号无密码就可以登录,需要设置密码。"unix_socket"模式,也就是默认情况下,root用户通过"unix_socket"身份验证插件进行身份验证,无需密码。需要将此模式改为"mysql_native_password"。
ALTER USER roo@localhost IDENTIFIED VIA mysql_native_password;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
3.创建Windows定时任务
(1)打开“任务计划程序”
(2)创建基本任务
(3)填写任务名称及描述
(4)选择任务周期
(5)设置任务开始时间
(6)设置任务的操作
(7)选择启动脚本
(8)完成设置
转自 简书 nickbi
转自 简书 nickbi
February 26th, 2020 at 09:28 pm