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-9.0.0.tar.gz
$> cd mysql-9.0.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
進行組態設定