Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


13.7.3.3 INSTALL PLUGIN 構文

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.solibmyplugin.dlllibmyplugin.dylib など)。

共有ライブラリは、プラグインディレクトリ (plugin_dir システム変数で指定されているディレクトリ) 内に存在する必要があります。このライブラリは、サブディレクトリ内ではなく、プラグインディレクトリ自体に存在する必要があります。デフォルトでは、plugin_dirpkglibdir 構成変数で指定されているディレクトリの下にある 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 ステートメントを発行する必要があります。

  • サーバーを停止し、新しいプラグインライブラリファイルをプラグインディレクトリにインストールしてから、サーバーを再起動します。


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