MySQL Router 8.4  /  安裝 MySQL Router  /  從原始碼安裝 MySQL Router

2.5 從原始碼安裝 MySQL Router

MySQL Router 是 MySQL 伺服器原始碼樹的一部分;編譯 MySQL 伺服器也會編譯 MySQL Router。這假設 -DWITH_ROUTER=ON,這是預設啟用的。此處的說明很簡短,有關特定先決條件和其他詳細資訊,請參閱從原始碼安裝 MySQL

注意

MySQL Router 原始碼可以在 MySQL 伺服器原始碼存放庫內的 router 目錄中找到。

取得原始碼

若要編譯 MySQL Router,請從 https://mysqldev.dev.org.tw/downloads/mysql 下載 MySQL 伺服器原始碼。或者,在 GitHub 上 git clone mysql-server

下載並解壓縮 MySQL 伺服器原始碼檔案,例如

$> tar xzf mysql-8.4.0.tar.gz
$> cd mysql-8.4.0

完成後,您需要像配置 MySQL 伺服器一樣使用 cmake 進行配置。

配置

CMake 程式可控制您如何配置原始碼發行套件。通常,您會使用 CMake 命令列上的選項來執行此操作。CMake 選項在此處未記錄,請參閱MySQL 原始碼配置選項

若要編譯原始碼,請建立一個資料夾以包含已編譯的二進位檔和可執行檔,執行 cmake 以建立 make 檔案,然後編譯程式碼。有關其他詳細資訊,包括平台特定的先決條件和注意事項,請參閱從原始碼安裝 MySQL 伺服器

注意

如果您變更任何內容且需要從頭重新編譯,請務必在執行 cmake 命令之前刪除 CMakeCache.txt 檔案。

首先執行 cmake 命令以建立 make 檔案。以下命令從 MySQL 伺服器原始碼樹的根目錄執行

$> mkdir build && cd build
$> cmake ..

執行 cmake 可能會產生與遺失的程式庫或工具相關的錯誤。例如,macOS 建置可能需要參照較新的 bison 可執行檔

$> cmake .. -DBISON_EXECUTABLE=/usr/local/opt/bison/bin/bison

編譯

您可以像平常一樣編譯 MySQL 伺服器(只需 make),因為它也會編譯 MySQL Router,或建置 MySQL Router 特定目標。例如,若要僅使用其程式庫、外掛程式和測試建置 MySQL Router

$> make mysqlrouter_all

選擇性地使用 ctest 執行 MySQL Router 特定測試

$> ctest -R routertest_

安裝

沒有僅從原始碼安裝 MySQL Router 的 make 選項,因為執行 make install 會啟動完整的 MySQL 伺服器建置。

開發人員相關注意事項

與使用和測試本機編譯的 MySQL Router 版本以進行開發目的相關的注意事項

  • 若要在不使用 make install 的情況下執行本機建置,請將 Router 設定為尋找新建立的 plugin_folder,因為編譯會產生非標準的安裝目錄結構。手動編輯產生的 mysqlrouter.conf 或在啟動期間設定,例如:--conf-set-option=DEFAULT.plugin_folder=../plugin_output_directory

    同樣地,也設定 runtime_folder,例如:--conf-set-option=DEFAULT.runtime_folder=../runtime_output_directory

  • 雖然個別目標會產生二進位檔,例如 make mysqlrouter_password,但建議建置所有 Router 目標

  • 若要避免建置單元測試,也請使用 -DWITH_UNIT_TESTS=0 進行配置