延伸 MySQL 8.4  /  ...  /  編譯和安裝外掛程式庫

4.4.3 編譯和安裝外掛程式庫

在外掛程式編寫完成後,您必須對其進行編譯並安裝。編譯共享物件的程序因系統而異。如果您使用 CMake 建置您的程式庫,它應該能夠為您的系統產生正確的編譯指令。如果程式庫命名為 somepluglib,您最終應該會得到一個名稱類似於 somepluglib.so 的共享程式庫檔案。(.so 副檔名在您的系統上可能會有所不同。)

要使用 CMake,您需要設定組態檔案,以啟用外掛程式的編譯和安裝。使用 MySQL 原始程式碼發行版本中 plugin 目錄下的外掛程式範例作為指南。

建立 CMakeLists.txt,它應該看起來像這樣

MYSQL_ADD_PLUGIN(somepluglib somepluglib.c
  MODULE_ONLY MODULE_OUTPUT_NAME "somepluglib")

CMake 產生 Makefile 時,它應該會負責將 -DMYSQL_DYNAMIC_PLUGIN 旗標傳遞給編譯指令,並將 -lmysqlservices 旗標傳遞給連結器,這對於連結透過外掛程式服務介面提供的任何服務中的函式是必需的。請參閱MySQL 外掛程式服務

執行 CMake,然後執行 make

$> cmake .
$> make

如果您需要為 CMake 指定組態選項,請參閱MySQL 原始程式碼組態選項以取得清單。例如,您可能想要指定CMAKE_INSTALL_PREFIX 以指出應該安裝外掛程式的 MySQL 基礎目錄。您可以使用SHOW VARIABLES 來查看此選項所使用的值

mysql> SHOW VARIABLES LIKE 'basedir';
+---------------+------------------+
| Variable_name | Value            |
+---------------+------------------+
| base          | /usr/local/mysql |
+---------------+------------------+

您應該安裝程式庫的外掛程式目錄位置由plugin_dir 系統變數給定。例如

mysql> SHOW VARIABLES LIKE 'plugin_dir';
+---------------+-----------------------------------+
| Variable_name | Value                             |
+---------------+-----------------------------------+
| plugin_dir    | /usr/local/mysql/lib/mysql/plugin |
+---------------+-----------------------------------+

要安裝外掛程式庫,請使用 make install

$> make install

驗證 make install 是否將外掛程式庫安裝在正確的目錄中。安裝後,請確保該程式庫的權限允許伺服器執行它。