9.2.4 mysql_load_plugin()

struct st_mysql_client_plugin *
mysql_load_plugin(MYSQL *mysql,
                  const char *name,
                  int type,
                  int argc,
                  ...)

說明

載入由名稱和類型指定的 MySQL 用戶端外掛程式。如果類型無效或無法載入外掛程式,則會發生錯誤。

無法載入相同類型的多個外掛程式。如果您嘗試載入已載入類型之外掛程式,則會發生錯誤。

按如下方式指定參數

  • mysql:指向 MYSQL 結構的指標。外掛程式 API 不需要連線到 MySQL 伺服器,但此結構必須正確初始化。該結構用於獲取與連線相關的資訊。

  • name:要載入的外掛程式名稱。

  • type:要載入的外掛程式類型,或 -1 以停用類型檢查。如果類型不是 -1,則只會考慮載入與該類型匹配的外掛程式。

  • argc:以下參數的數量(如果沒有,則為 0)。以下任何參數的解釋取決於外掛程式類型。

載入外掛程式的另一種方法是將 LIBMYSQL_PLUGINS 環境變數設定為以分號分隔的外掛程式名稱清單。例如:

export LIBMYSQL_PLUGINS="myplugin1;myplugin2"

當用戶端程式呼叫 mysql_library_init() 時,會載入由 LIBMYSQL_PLUGINS 指定名稱的外掛程式。如果載入這些外掛程式時發生問題,則不會報告錯誤。

可以將 LIBMYSQL_PLUGIN_DIR 環境變數設定為要搜尋用戶端外掛程式的目錄路徑名稱。此變數以兩種方式使用:

  • 在用戶端外掛程式預載入期間,--plugin-dir 選項的值不可用,因此除非外掛程式位於硬式編碼的預設目錄中,否則用戶端外掛程式載入會失敗。如果外掛程式位於其他位置,則可以將 LIBMYSQL_PLUGIN_DIR 環境變數設定為正確的目錄,以使外掛程式預載入成功。

  • 對於明確的用戶端外掛程式載入,如果 --plugin-dir 選項未給定,則 mysql_load_plugin()mysql_load_plugin_v() C API 函數會使用 LIBMYSQL_PLUGIN_DIR 值(如果存在)。如果給定 --plugin-dir,則 mysql_load_plugin()mysql_load_plugin_v() 會忽略 LIBMYSQL_PLUGIN_DIR

傳回值

如果外掛程式載入成功,則傳回指向外掛程式的指標。NULL 表示發生錯誤。

錯誤

若要檢查錯誤,請呼叫 mysql_error()mysql_errno() 函數。請參閱 第 5.4.16 節,「mysql_error()」第 5.4.15 節,「mysql_errno()」

範例

MYSQL mysql;

if(!mysql_load_plugin(&mysql, "myplugin",
                      MYSQL_CLIENT_AUTHENTICATION_PLUGIN, 0))
{
    fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
    exit(-1);
}