サーバープラグインの実装は、いくつかのコンポーネントで構成されています。
SQL ステートメント:
INSTALL PLUGIN
はプラグインをmysql.plugin
テーブルに登録し、プラグインコードをロードします。UNINSTALL PLUGIN
はプラグインをmysql.plugin
テーブルから登録解除し、プラグインコードをアンロードします。全文インデックス作成用の
WITH PARSER
句は、全文パーサープラグインを特定のFULLTEXT
インデックスに関連付けます。SHOW PLUGINS
は、サーバープラグインについての情報を表示します。
コマンド行オプションおよびシステム変数:
--plugin-load
オプションを指定すると、サーバー起動時にプラグインをロードできます。plugin_dir
システム変数は、すべてのプラグインをインストールする必要があるディレクトリの場所を指定します。この変数の値は、サーバー起動時に--plugin_dir=
オプションで指定できます。mysql_config --plugindir を指定すると、デフォルトのプラグインディレクトリのパス名が表示されます。path
プラグインのロードについての追加情報は、セクション5.1.8.1「プラグインのインストールおよびアンインストール」を参照してください。
プラグインに関連するテーブル:
INFORMATION_SCHEMA.PLUGINS
テーブルにはプラグイン情報が格納されています。mysql.plugin
テーブルには、INSTALL PLUGIN
によってインストールされた各プラグインが示され、プラグインを使用するために必要となります。新規に MySQL をインストールする場合、このテーブルはインストール処理中に作成されます。
クライアントプラグインの実装はより単純です。
mysql_options()
C API 関数の場合は、MYSQL_DEFAULT_AUTH
オプションおよびMYSQL_PLUGIN_DIR
オプションを指定すると、クライアントプログラムが認証プラグインをロードできます。クライアントプラグインを管理できる C API 関数があります。
MySQL がプラグインを実装する方法を調べるには、MySQL ソース配布内の次のソースファイルを参照してください。
include/mysql
ディレクトリのplugin.h
は、パブリックなプラグイン API を公開しています。プラグインライブラリを記述するすべてのユーザーは、このファイルを調査することをお勧めします。plugin_
ファイルには特定のタイプのプラグインに関する追加情報があります。xxx
.hclient_plugin.h
にはクライアントプラグインに固有の情報が含まれています。sql
ディレクトリ内のsql_plugin.h
およびsql_plugin.cc
は、内部プラグインの実装を構成しています。sql_acl.cc
はサーバーが認証プラグインを使用する場所です。プラグイン開発者はこれらのファイルを参照する必要はありません。サーバーがプラグインを処理する方法について知りたい場合は、これらのファイルを参照できます。sql-common
ディレクトリ内の、client_plugin.h
は C API クライアントプラグイン関数を実装し、client.c
はクライアント認証サポートを実装します。プラグイン開発者はこれらのファイルを参照する必要はありません。サーバーがプラグインを処理する方法について知りたい場合は、これらのファイルを参照できます。