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試一下就是可以刪除的了

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