Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


23.8.14.3 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)。後続の引数の解釈はプラグインの型によって異なります。

プラグインをロードさせるもう 1 つの方法は、LIBMYSQL_PLUGINS 環境変数にセミコロン区切りのプラグイン名のリストを設定することです。例:

shell> export LIBMYSQL_PLUGINS="myplugin1;myplugin2"

クライアントプログラムが mysql_library_init() を呼び出したときに、LIBMYSQL_PLUGINS によって指定されたプラグインがロードされます。これらのプラグインのロードで問題が発生した場合、エラーは報告されません。

MySQL 5.6.10 以降、LIBMYSQL_PLUGIN_DIR 環境変数には、クライアントプラグインを探すディレクトリのパス名を設定できます。この変数は 2 つの方法で使用されます。

  • クライアントプラグインのプリロード中、--plugin-dir オプションの値は使用できないため、プラグインが、組み込まれたデフォルトのディレクトリに存在しない場合、クライアントプラグインのロードが失敗します。プラグインがほかの場所に存在する場合は、LIBMYSQL_PLUGIN_DIR 環境変数を正しいディレクトリに設定し、プラグインのプリロードが成功できるようにします。

  • 明示的なクライアントプラグインのロードで、mysql_load_plugin() および mysql_load_plugin_v() C API 関数は LIBMYSQL_PLUGIN_DIR 値が存在し、--plugin-dir オプションが指定されていない場合は、その値を使用します。--plugin-dir が指定されている場合は、mysql_load_plugin()mysql_load_plugin_v()LIBMYSQL_PLUGIN_DIR を無視します。

戻り値

プラグインが正常にロードされた場合にプラグインへのポインタ。エラーが発生した場合は NULL

エラー

エラーをチェックするには、mysql_error() または mysql_errno() 関数を呼び出します。セクション23.8.7.15「mysql_error()」およびセクション23.8.7.14「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);
}
関連項目

セクション23.8.14.3「mysql_load_plugin()」セクション23.8.7.15「mysql_error()」セクション23.8.7.14「mysql_errno()」 も参照してください。


User Comments
Sign Up Login You must be logged in to post a comment.