如何定期備份 MySQL 及刪除舊有檔案-適用 Windows

如何定期備份 MySQL 及刪除舊有檔案-適用 Windows

MySQL 是免費的關聯式資料庫,具有輕量級速度快的優點,適合小型網站架設使用。
目前最流行的 WordPress 就是採用 MySQL 做為指定資料庫。

如果還沒安裝 MySQL 的話,可參考我這篇教學文章: Windows Server 安裝 MySQL Community 免費社群版

上一篇我講解了如何備份與還原 MySQL 資料庫,我所教學的方法是手動備份的方式。

接下來這一篇將會講解如何在 Windows 做到定期備份,並定期刪除舊有備份檔。
而我所使用的方式是命令提示字元(CMD),呼叫 MySQL 備份程式。
再使用工作排程器來定期執行批次指令。

編寫命令列

在開始寫命令列之前,我們先建立要存放備份的目錄。例如放在 C:\mysql_backup。
然後在建立一個批次檔案,副檔名為 .bat。例如放在 C:\mysql_backup.bat 。
mysql_backup.bat 內容如下:

關於需要調整的參數有:
BackupFile=備份目錄。
userId=資料庫登入帳號,建立用管理者帳號。
UserPwd=資料庫登入密碼。
Host=主機 IP。
port=連接埠。
DBName=資料庫名稱。
RetentionDays=-3 表示刪除超過3天的檔案。

關於檔名的時間,我只有保留{年月日}而已。
如果想要使用{年月日時分秒}格式的話,可以使用以下語法。
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"

另外要特別注意的是在執行備份指令的 C:\Program Files\MySQL\MySQL Server 8.0\bin\,要指向你安裝的 MySQL 目錄。
mysqldump是 MySQL 提供的備份程式。

當執行過後就會產生以下檔案

發生錯誤時檢查方式

如果當你執行後,檔案沒有正常出現,可能出現了問題。
可以把指令最下面的rem pause 改為 pause
而 rem 是註解的意思,pause 則是暫停的意思。
會讓執行畫面停住不會消失,這時候你可以看看是那裡出現問題。
較常出現的問題是資料庫連線失敗或是目錄有錯。

設定工作排程器

當完成了批次檔 mysql_backup.bat 後,接下來就是建立「工作排程器」定期備份。

打開「工具排程器」,在右邊執行「建立工作」。

工作排程器

輸入排程名稱

排程名稱例如: “MySQL Backup”。
執行選項可選擇「只有使用者登入時才執行」或是「不論使用者登入與否均執行」。
這個看你的電腦是否要在登出時執行。

工作排程器

設定觸發程序

觸發時間依個人想要的週期來備份。

工作排程器

通常我是每天備份一次。

設定動作

動作的部份就選擇啟動剛剛的批次檔,要注意的是「開始位置」也要輸入批次檔的存放目錄。

工作排程器

完成設定後,就可以在清單看到已建立的排程了。

工作排程器

重點整理

  1. 編寫命令列 ( .bat 檔)
  2. 設定工作排程器

相關學習文章

如果你在學習上有不懂的地方,可以參考專業諮詢或線上家教服務,我想辨法解決你的問題
如果文章內容有錯誤的地方,幫我在下方留言通知我一下,謝謝
喜歡我的文章,請幫我在上方綠色拍手圖示按 5 下,也歡迎按月贊助,鼓勵我繼續創作,謝謝

加入社團一起討論

2 thoughts on “如何定期備份 MySQL 及刪除舊有檔案-適用 Windows

  1. 之前找到的其他教學都無法運作,這篇的bat檔終於會動了,十分感謝
    想請教一下這些參數的作用,因為我還是很好奇之前自己找到的寫法為什麼無法運作

    -u root -ppassword –database dbname >D:\
    mysqldump: [Warning] Using a password on the command line interface can be insecure.

    1. 你的 -ppassword 是不是應該為 -p password (中間需要有空格才會正確?)
      你的錯誤訊息是使用密碼可能不安全,這個我看不出原因,我沒有用這種方法登入過

      但你可以正常運行 bat 檔還是恭喜你喔

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

11 + two =