如何在 ServBay 中升級與遷移 MySQL/MariaDB
概述
在本機開發過程中,你可能會依據專案需求,或為了獲取最新功能與安全修正,需要切換 ServBay 環境中的 MySQL 或 MariaDB 資料庫預設版本。本文檔目的是提供一套清晰且詳盡的操作指引,協助你安全完成這項任務,尤其包含關鍵的資料備份與還原步驟。
適用情境
- 升級至最新版本: 獲得新特性、效能提升與安全修正。
- 測試專案相容性: 驗證你的應用程式在不同資料庫版本下的表現。
- 滿足特定專案依賴: 某些專案可能強制要求使用特定版本的資料庫。
前置條件
- 已安裝並執行 ServBay。
- 基本熟悉終端機指令操作。
- 知道目前資料庫的
root
使用者密碼。 - 有足夠的磁碟空間安裝新版本與存放資料庫備份。
操作步驟
以下以 MariaDB 10.11 遷移到 MariaDB 11.3 為例,詳細說明切換流程。對於 MySQL 版本的切換,步驟也大致相同。
1. 備份舊版本資料庫
在執行任何版本切換前,強烈建議完整備份目前資料庫的所有資料。你可以有效預防資料遺失,並在遇到相容性問題時有還原的依據。
mysqldump
工具是備份資料庫的標準方法。請開啟終端機,執行下列命令:
mysqldump -uroot -p --all-databases --opt > mariadb_backup.sql
-u root
:指定以root
使用者連線資料庫。-p
:提示輸入root
密碼。--all-databases
:備份所有資料庫。--opt
:為常用的選項組合,包含--add-drop-table
、--add-locks
、--create-command
、--disable-keys
、--extended-insert
、--lock-tables
、--quick
、--set-charset
等,有助於產生高效且可攜的備份檔。> mariadb_backup.sql
:將備份內容輸出至當前目錄的mariadb_backup.sql
。請注意,該檔案會存在你執行指令時的終端路徑,通常是你的使用者家目錄 (~
)。
執行後,依提示輸入 MariaDB 的 root
密碼。命令將會執行一段時間,過程中不會有太多輸出,直到再次出現提示字串。備份檔大小視資料庫規模而定,建議你檢查 mariadb_backup.sql
檔案的大小,確保不是空檔案。
2. 安裝欲切換的新版本
打開 ServBay 主程式,進入 套件 (Packages) 分頁。在資料庫分類下尋找 MariaDB 或 MySQL,然後選擇你希望切換的新版本(例如 MariaDB 11.3),點擊安裝按鈕。
請等待 ServBay 自動完成新版本的下載與安裝。
3. 停用舊版本資料庫
新版本安裝完成後,回到 ServBay 的 套件 (Packages) 分頁。找到當前執行中的舊版本資料庫(例如 MariaDB 10.11),點擊狀態指示器(通常是綠色圓點)將其停用。狀態指示器應會變為灰色。
4. 啟用新版本資料庫
停用舊版本後,找到剛剛安裝好的新版本(例如 MariaDB 11.3),點擊狀態指示器將其啟用。指示器會變為綠色,代表新版本資料庫已成功啟動。
5. 設定新版本為預設版本
僅僅啟用新版本並停用舊版本,還不足以讓系統預設使用新版本。你還需於 ServBay 設定頁明確指定預設資料庫版本。
請導航到 ServBay 應用的 設定 (Settings) 分頁。在資料庫相關設定中,找到 MySQL 或 MariaDB 的預設版本選項。於下拉選單選擇剛剛啟用的新版本(如 MariaDB 11.3)。
點擊面板下方 Apply (套用) 按鈕以儲存變更。
6. 確認預設版本設定成功
返回 ServBay 的 套件 (Packages) 面板。你應該會看到新版本(例如 MariaDB 11.3)旁邊標有「預設版本」的標記。
7. 於終端機驗證預設版本
啟動終端機,執行下列指令,驗證系統目前預設使用的資料庫版本:
mysql -V
結果輸出應顯示新設定的版本資訊,如 mysql Ver 11.3.2-MariaDB ...
。
8. 還原資料庫備份
這時可以將先前備份的資料恢復至新版本資料庫。在終端機執行:
mysql -uroot -p < mariadb_backup.sql
-u root
:指定以root
使用者連線。-p
:提示輸入root
密碼。< mariadb_backup.sql
:將mariadb_backup.sql
檔案內容導入給mysql
客戶端執行,完成還原。
輸入新版本資料庫的 root
密碼(通常與舊版相同,除非你啟動新版本後有變更)。還原時間會依備份檔大小不同而有差異。
注意: 還原過程中,終端可能出現警告或錯誤訊息,尤其是新舊版本之間有明顯相容性差異,或備份內容含有舊版本專屬特性(如某些儲存引擎、函數或 DEFINER
子句)。多數常見 Web 開發應用這些警告通常可忽略,但若屬於生產或複雜應用,請務必檢查、處理這些問題。
9. 確認資料庫成功還原
還原後,登入資料庫檢查資料狀況:
mysql -uroot -p
輸入密碼後,即可進入 MariaDB/MySQL 命令列。查看資料庫清單:
SHOW DATABASES;
你也可繼續檢查特定資料庫與資料表,執行查詢,確保所有資料均已正確還原,並且你的應用程式能正常連接與存取資料庫。
注意事項
- 資料相容性: 雖然 MySQL/MariaDB 致力於相容,但主要版本升級(如 5.7 到 8.0,或 MariaDB 10.x 到 11.x)仍可能有不相容的改動。務必查閱官方文件瞭解版本間的相容說明。
- 設定檔案: ServBay 為每個資料庫版本獨立維護設定檔(如
my.cnf
或my.ini
)。倘若你曾修改舊版本設定檔,需手動將變動遷移或合併到新版本設定中。設定檔通常位於 ServBay 安裝目錄的特定路徑(例如/Applications/ServBay/etc/mysql/版本號/my.cnf
)。 - 效能: 新版本資料庫可能有不同預設值或內部優化。切換完成後,建議針對你的系統執行效能測試,必要時調整新版本設定。
- 連接埠: 預設情況下,ServBay 配置的資料庫皆監聽標準埠(如 3306)。切換預設版本不會更動連接埠。如需讓多版本同時運行並監聽不同埠,請手動調整各自設定檔。
常見問題解答(FAQ)
- Q:新安裝的資料庫版本啟動失敗怎麼辦?
- A: 請檢查 ServBay 套件面板的狀態指示器與日誌檔。資料庫日誌通常在 ServBay 安裝目錄下的
var/log/mysql
或var/log/mariadb
子目錄,閱讀日誌有助排查啟動失敗原因,例如設定檔錯誤、埠衝突或權限問題。
- A: 請檢查 ServBay 套件面板的狀態指示器與日誌檔。資料庫日誌通常在 ServBay 安裝目錄下的
- Q:資料庫恢復時出現錯誤該怎麼處理?
- A: 仔細閱讀錯誤描述。常見錯誤如字元集問題(可在
mysqldump
時加上--default-character-set=utf8mb4
)、DEFINER
權限問題(可於備份檔批次取代DEFINER
子句),或備份檔已損毀。針對大型資料庫,可考慮改用mydumper
/myloader
類工具分割並行備份與還原。
- A: 仔細閱讀錯誤描述。常見錯誤如字元集問題(可在
- Q:可以不用備份與還原,直接切換資料庫版本嗎?
- A: 不建議這麼做,尤其是主要版本升級。直接切換可能導致資料結構不相容、資料損毀或遺失。經由完整備份與還原,是最安全的版本切換流程。
- Q:切換後網站/應用程式連不上資料庫怎麼辦?
- A: 請確定 ServBay 已成功啟動新版本資料庫並設為預設版本,再檢查你的應用程式資料庫連線參數:主機名(通常為
127.0.0.1
或localhost
)、埠口(預設 3306)、用戶名與密碼是否正確。
- A: 請確定 ServBay 已成功啟動新版本資料庫並設為預設版本,再檢查你的應用程式資料庫連線參數:主機名(通常為
結論
依據本指引,你能夠在 ServBay 環境中安全又順利地切換 MySQL 或 MariaDB 的預設版本。核心步驟包含資料備份、新版本的安裝與啟用、於 ServBay 設定預設版本,以及最終的資料還原。請務必重視備份,並於切換後充分驗證資料與應用程式功能的完整性。