Mysql備份失敗案例(一)

chenoracle發表於2018-11-29


Mysql 備份失敗案例( )

 

環境:

OS :windows server 2012

DB:Mysql5.7.17

問題:

Mysql 透過mysqldump 命令每天晚上22 點自動備份可以成功;

上午9 點多,單獨執行了下自動備份的bat 檔案,備份報錯,錯誤資訊如下:

C:\Users\Administrator>rem *******************************backup Start*****************************

mysqldump: [Warning] Using a password on the command line interface can be insec ure.

mysqldump: Couldn't find table: "9-29-04.sql"

錯誤: 用指定的搜尋標準沒有找到檔案。

C:\Users\Administrator>rem *******************************backup End*****************************

問題分析:

備份指令碼里,使用%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2% 獲取當前時間,因為一天可能有多個備份,備份格式為- - - - -

透過報錯” mysqldump: Couldn't find table: "9-29-04.sql" 可知,在使用%time:~0,2% 獲取小時出現了問題;

問題重現:

Cmd 視窗執行echo %date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2% 時,發現小時9 前面多了個空格,導致備份失敗;

C:\Users\Administrator>echo %date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%

2018-11-29- 9-28-17

但是從10 點開始獲取小時正常,沒有多餘的空格:

C:\Users\Administrator>echo %date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%

2018-11-29- 12-29-54

問題原因:

透過%time:~0,2% 獲取小時,如果當前小時為個位數,即0-9 點時,小時前會出現 空格:

C:\Users\Administrator>echo %time:~0,2%

 9

C:\Users\Administrator>echo %time:~0,2%

12

解決方案:

將小時前面的空格用0 代替;

C:\Users\Administrator>set h=%time:~0,2%

C:\Users\Administrator> set h=%h: =0%

C:\Users\Administrator>echo %date:~0,4%-%date:~5,2%-%date:~8,2%-%h%-%time:~3,2%-%time:~6,2%

2018-11-29-09-28-55

歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!

Mysql備份失敗案例(一)

Mysql備份失敗案例(一)



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2222102/,如需轉載,請註明出處,否則將追究法律責任。

相關文章