MySQL 是免費的關聯式資料庫,具有輕量級速度快的優點,適合小型網站架設使用。
目前最流行的 WordPress 就是採用 MySQL 做為指定資料庫。
如果還沒安裝 MySQL 的話,可參考我這篇教學文章: Windows Server 安裝 MySQL Community 免費社群版
在上一篇我講解了如何備份與還原 MySQL 資料庫,我所教學的方法是手動備份的方式。
接下來這一篇將會講解如何在 Windows 做到定期備份,並定期刪除舊有備份檔。
而我所使用的方式是命令提示字元(CMD),呼叫 MySQL 備份程式。
再使用工作排程器來定期執行批次指令。
在開始寫命令列之前,我們先建立要存放備份的目錄。例如放在 C:\mysql_backup。
然後在建立一個批次檔案,副檔名為 .bat。例如放在 C:\mysql_backup.bat 。
mysql_backup.bat 內容如下:
rem ******MySQL backup start********
@echo off
:: 備份目錄
set BackupFile=C:\mysql_backup
:: 資料庫連線
set userId=root
set UserPwd=123456
set Host=127.0.0.1
set port=3306
set DBName=world
:: 備份保留天數
set RetentionDays=-3
:: 設定時間格式 yyyyMMdd
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"
::刪除舊有備份檔
forfiles /p %BackupFile% /m backup_*.sql -d %RetentionDays% /c "cmd /c del /f @path"
:: 執行備份指令
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump" --opt --single-transaction=TRUE --user=%userId% --password=%UserPwd% --host=%Host% --protocol=tcp --port=%port% --default-character-set=utf8 --single-transaction=TRUE --routines --events %DBName% > "%BackupFile%\backup_%Ymd%.sql"
@echo on
rem ******MySQL backup end********
rem pause
關於需要調整的參數有:
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"。
執行選項可選擇「只有使用者登入時才執行」或是「不論使用者登入與否均執行」。
這個看你的電腦是否要在登出時執行。
觸發時間依個人想要的週期來備份。
通常我是每天備份一次。
動作的部份就選擇啟動剛剛的批次檔,要注意的是「開始位置」也要輸入批次檔的存放目錄。
完成設定後,就可以在清單看到已建立的排程了。
MySQL Workbench如何備份與還原資料庫
Windows Server IIS 如何安裝 PHP 網頁伺服器
Windows Server 安裝 MySQL Community 免費社群版