Mysql

mysqldump 是否返回狀態?

  • April 12, 2022

我正在創建一個使用 mysqldump 實用程序備份 mysql 數據庫的腳本。我正在外殼“sh”中編寫此腳本。我想在腳本中擷取 mysqldump 的輸出狀態(即 mysqldump 命令是否失敗或成功),以便我可以報告腳本是否成功。

  • mysqldump 是否返回輸出狀態?
  • 有人可以給我有關如何執行此操作的說明嗎?

mysqldump 返回

0 for Success
1 for Warning
2 for Not Found

它還會將擴展的錯誤消息列印到 stderr,例如

mysqldump: Got error: 1049: Unknown database 'dbname' when selecting the database

您可以像這樣檢查返回的值

mysqldump -u DBuser -pDBpassword database >database.sql 2>database.err 
if [ "$?" -eq 0 ]
then
   echo "Success"
else
   echo "Mysqldump encountered a problem look in database.err for information"
fi

轉儲完成後檢查 $? 殼變數。如果它是 0 - 一切都很好。否則 - 錯誤。

# mysqldump -u aaa -d msf>/dev/null
mysqldump: Got error: 1045: Access denied for user 'aaa'@'localhost' (using password: YES) when trying to connect
# echo $?
2

引用自:https://serverfault.com/questions/249853