INSTALL PLUGIN plugin_name SONAME 'shared_library_name'
このステートメントは、サーバープラグインをインストールします。これには、mysql.plugin
テーブルに対する INSERT
権限が必要です。
plugin_name
は、ライブラリファイルに含まれているプラグインディスクリプタ構造で定義されているプラグインの名前です (セクション24.2.4.2「プラグインのデータ構造体」を参照してください)。プラグイン名は大文字と小文字が区別されません。プラグイン名は C ソースファイル、シェルコマンド行、M4 および Bourne シェルスクリプト、SQL 環境などで使用されるため、最大化の互換性のために、プラグイン名は ASCII 文字、数字、およびアンダースコアに制限するようにしてください。
shared_library_name
は、プラグインコードを含む共有ライブラリの名前です。この名前には、ファイル名拡張子が含まれています (libmyplugin.so
、libmyplugin.dll
、libmyplugin.dylib
など)。
共有ライブラリは、プラグインディレクトリ (plugin_dir
システム変数で指定されているディレクトリ) 内に存在する必要があります。このライブラリは、サブディレクトリ内ではなく、プラグインディレクトリ自体に存在する必要があります。デフォルトでは、plugin_dir
は pkglibdir
構成変数で指定されているディレクトリの下にある plugin
ディレクトリですが、サーバーの起動時に plugin_dir
の値を設定することによって変更できます。たとえば、my.cnf
ファイル内でその値を設定します。
[mysqld]
plugin_dir=/path/to/plugin/directory
plugin_dir
の値が相対パス名である場合は、MySQL ベースディレクトリ (basedir
システム変数の値) を基準にしていると見なされます。
INSTALL PLUGIN
は、プラグインを使用可能にするために、そのプラグインコードをロードして初期化します。プラグインは、使用可能になる前にそのプラグインが実行する必要のあるすべての設定を処理するその初期化関数を実行することによって初期化されます。サーバーは、シャットダウン時に、ロードされている各プラグインの初期化解除関数を実行することにより、そのプラグインに最終クリーンアップを実行するための変更が発生するようにします。
INSTALL PLUGIN
はまた、そのプラグイン名とライブラリファイル名を示す行を mysql.plugin
テーブルに追加することによって、そのプラグインの登録も行います。サーバーの起動時に、サーバーは、mysql.plugin
テーブルにリストされているすべてのプラグインをロードして初期化します。つまり、プラグインはサーバーが起動するたびにではなく、1 回だけ INSTALL PLUGIN
によってインストールされます。起動時のプラグインのロードは、サーバーが --skip-grant-tables
オプションで起動された場合は実行されません。
プラグインライブラリには、複数のプラグインを含めることができます。各プラグインをインストールするには、個別の INSTALL PLUGIN
ステートメントを使用します。各ステートメントは異なるプラグインを指定しますが、そのすべてが同じライブラリ名を指定します。
INSTALL PLUGIN
を指定すると、サーバーは、サーバーの起動中と同様にオプション (my.cnf
) ファイルを読み取ります。これにより、プラグインは、これらのファイルからすべての関連オプションを取得できるようになります。プラグインをロードする前でも、オプションファイルにプラグインオプションを追加できます (loose
プリフィクスが使用されている場合)。また、プラグインをアンインストールしたり、my.cnf
を編集したり、プラグインを再度インストールしたりすることもできます。プラグインをこの方法で再起動すると、サーバーを再起動することなく新しいオプション値を指定できます。
サーバーの起動時に個々のプラグインロードを制御するオプションについては、セクション5.1.8.1「プラグインのインストールおよびアンインストール」を参照してください。サーバーにシステムテーブルを読み取らないよう指示する --skip-grant-tables
オプションが指定されたとき、1 回のサーバー起動時にプラグインをロードする必要がある場合は、--plugin-load
オプションを使用します。セクション5.1.3「サーバーコマンドオプション」を参照してください。
プラグインを削除するには、UNINSTALL PLUGIN
ステートメントを使用します。
プラグインのロードについての追加情報は、セクション5.1.8.1「プラグインのインストールおよびアンインストール」を参照してください。
インストールされているプラグインを確認するには、SHOW PLUGINS
ステートメントを使用するか、または INFORMATION_SCHEMA.PLUGINS
テーブルにクエリーします。
プラグインライブラリを再コンパイルするとき、それを再インストールする必要がある場合は、次の方法のいずれかを使用できます。
UNINSTALL PLUGIN
を使用してライブラリ内のすべてのプラグインをアンインストールし、新しいプラグインライブラリファイルをプラグインディレクトリにインストールしてから、INSTALL PLUGIN
を使用してすべてのプラグインをライブラリにインストールします。この手順には、サーバーを停止することなく使用できるという利点があります。ただし、プラグインライブラリに多数のプラグインが含まれている場合は、多数のINSTALL PLUGIN
およびUNINSTALL PLUGIN
ステートメントを発行する必要があります。サーバーを停止し、新しいプラグインライブラリファイルをプラグインディレクトリにインストールしてから、サーバーを再起動します。