背景:之前開發(fā)的報告整理工具使用的數(shù)據(jù)庫一直沒有增加自動備份草丧,每次想起來手動去備份一下狸臣,因此想增加一個自動備份數(shù)據(jù)庫的任務(wù)。先把這個過程中遇到的問題記錄下來
寫基礎(chǔ)的shell備份腳本昌执,執(zhí)行腳本后出現(xiàn)兩個報錯
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: Got error: 2013: Lost connection to MySQL server during query when using LOCK TABLES
第一個是在腳本中明文輸入了password的警告烛亦,這個先忽略
第二個提示是失去連接的錯誤,此時去查看導(dǎo)出的數(shù)據(jù)庫備份文件是空的懂拾,即備份沒有成功煤禽,需要解決這個問題。
查閱網(wǎng)上的資料岖赋,共有三種思路
思路一:連接超時檬果。但是我實際從執(zhí)行腳本到失敗只有1秒鐘,還沒達到默認的60秒超時的情況贾节,所以我不是這種情況
思路二:不使用緩存區(qū)導(dǎo)出汁汗,mysqldump增加-q選項。但是我在備份前未執(zhí)行mysql語句栗涂,實際增加了-q參數(shù)報錯依然存在知牌,也不是此種情況
思路三:導(dǎo)出的表格存在錯誤。
連接mysql數(shù)據(jù)庫斤程,使用“show tables”命令查看表格角寸,出現(xiàn)以下報錯,到此可以確認我屬于此種情況忿墅。因為表格錯誤導(dǎo)致的無法連接錯誤
mysql> show tables;
ERROR 2006 (HY000): MySQL server has gone away
No connection.Trying to reconnect...
Connection id:? ? 8
Current database: DLYX_DB
解決方法:重啟本機的mysql 服務(wù)器扁藕,重啟后再次調(diào)用shell腳本,備份成功疚脐。
參考鏈接