在windows下,mysql的备份其实也很简单。
写bat文件
首先,需要知道mysql备份的关键语句:
mysqldump.exe --opt --single-transaction=TRUE --user=xxx(自己的用户名) --password=xxx(自己的密码) --default-character-set=utf8 database(需要备份的数据库名称) >X:\BACKUP\mysql_backup\backup.sql(自己的备份路径)
注意括号的内容,替换成自己的内容即可完成备份。
然后,我们就可以基于这个写一个bat文件:
::设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"
::进入mysql安装目录的bin
cd C:\Program Files\MySQL\MySQL Server 8.0\bin\
::执行备份操作
mysqldump.exe --opt --single-transaction=TRUE --user=xxx(自己的用户名) --password=xxx(自己的密码) --default-character-set=utf8 database(需要备份的数据库名称) >X:\BACKUP\mysql_backup\backup_%Ymd%.sql
理解一下内容,set一个变量Ymd
,将其放到文件路径后面拼成一个新的备份文件名。因为我们平时很可能一天备份多次,或者一天一次,所以时间名称就很重要了。
删除之前多天的备份文件
备份多了之后,所以之前的文件就没什么用了,可以通过bat将其删除。
forfiles /p "X:\BACKUP\mysql_backup" /m backup_*.sql -d -7 /c "cmd /c del /f @path"
这段循环查找指定文件夹下的所有符合查找文件名规则的文件,并指定日期。最后将其删除。
所以完整的bat文件内容如下:
rem ***** MySQL backup start *****
@echo off
::删除一周之前的备份文件
forfiles /p "X:\BACKUP\mysql_backup" /m backup_*.sql -d -7 /c "cmd /c del /f @path"
::设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"
::进入mysql安装目录的bin
cd C:\Program Files\MySQL\MySQL Server 8.0\bin\
::执行备份操作
mysqldump.exe --opt --single-transaction=TRUE --user=xxx(自己的用户名) --password=xxx(自己的密码) --default-character-set=utf8 database(需要备份的数据库名称) >X:\BACKUP\mysql_backup\backup_%Ymd%.sql
@echo on
rem ***** MySQL backup end *****
文件中需要注意你的文件路径,同时,需要注意中间进入mysql的bin文件夹,因为mysqldump.exe是bin文件中的文件,如果没有配置全局环境的话,需要先进入到bin文件夹才能继续操作。
写完之后,将bat文件放到我们需要的一个地方。
多说一个小坑
我上面的代码适合一天一次备份。有时候我们需要一天多次备份,这时候Ymd
就需要补充时间内容了。
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"
这个就是完整的时间格式。
但是我们经常都在凌晨备份,这时time
函数有一个坑,在cmd中打印完整的time就可以发现:
这个问题就会导致在备份的时候出现文件名中间有一个空格,无法备份。所以需要解决一下。
最简单的解决方案,使用0替换所有空格:
%Ymd: =0%
将它放到文件名的位置,也就是:
mysqldump.exe --opt --single-transaction=TRUE --user=xxx(自己的用户名) --password=xxx(自己的密码) --default-character-set=utf8 database(需要备份的数据库名称) >X:\BACKUP\mysql_backup\backup_%Ymd: =0%.sql
另外还可以跳过time的第一位,这里就不多说了。
windows下自动化
windows有一个很方便的工具:任务计划。
右键 我的电脑/此电脑,点击管理:
打开后找到 计算机管理 > 系统工具 > 任务计划程序,然后点击右侧的创建基本任务:
打开对话框,首先输入名称:
然后根据需要选择触发器,我这里只需要每天执行一次就可以:
选择具体的时间:
选择具体的操作,这里我们是要运行我们自己的bat文件,所以选择运行程序即可:
选择启动文件路径,这里我们选择我们的bat文件,并不需要参数:
然后会显示概览,最后点击完成,就可以在计划任务中看到我们的添加项:
然后,我们就可以让它自动的运行了~
文章评论