windows环境定时自动备份mysql文件空白

前几天项目需要实现每天12点和凌晨1点去自动备份开发环境的数据库,这种bat处理命令网上一搜一大把,例如下面这种

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%"

C:\Program Files\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****
但是在实际使用时遇到了两个问题,这点很多教程都没有提示到:
  • 虽然在指定目录下生成了sql备份文件,但是文件内容却是空的
  • 在执行删除命令的时候会提示语法错误
对于第一点文件为空的主要原因就是这条备份语句的路径有空格,导致命令无法识别

在这里插入图片描述C盘下的文件有空格,解决方式就是把mysqldump这个exe程序复制到一个没有空格的路径下就可以了

对于第二个执行删除命令的时候报错的问题就更简单了,其实根本就不算是错误,因为刚开始部署这个批处理文件的时候根本就没有文件让你去删除,所以找不到文件才报的错,可以把删除的时间改成今天就可以看到效果了

这个这个位置填写要保留的日期,7就表示保留7天,因为没有7天以上的数据,所以这个地方找不到文件就会有错误提示,如果已经有当天的生成的备份文件的话把这个改成0试一下就是可以删除的了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章