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
。
若要檢查錯誤,請呼叫 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);
}