擴展 MySQL 9.0  /  ...  /  編譯和安裝外掛程式庫

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 是否將外掛程式庫安裝在正確的目錄中。安裝後,請確定程式庫權限允許伺服器執行它。