MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

5.6.5 ddl_rewriter プラグイン

MySQL 8.0.16 以上には、サーバーが受け取る CREATE TABLE ステートメントを解析および実行する前に変更する ddl_rewriter プラグインが含まれています。 プラグインは、ENCRYPTIONDATA DIRECTORY および INDEX DIRECTORY 句を削除します。これらは、暗号化されているか、テーブルがデータディレクトリ外に格納されているデータベースから作成された SQL ダンプファイルからテーブルをリストアする場合に役立ちます。 たとえば、このようなダンプファイルを暗号化されていないインスタンス、またはデータディレクトリ外のパスにアクセスできない環境にリストアできます。

ddl_rewriter プラグインを使用する前に、セクション5.6.5.1「ddl_rewriter のインストールまたはアンインストール」 に記載されている手順に従ってインストールします。

ddl_rewriter は、解析前にサーバーが受信した SQL ステートメントを調べ、次の条件に従ってリライトします:

ddl_rewriter がステートメントをリライトすると、警告が生成されます:

mysql> CREATE TABLE t (i INT) DATA DIRECTORY '/var/mysql/data';
Query OK, 0 rows affected, 1 warning (0.03 sec)

mysql> SHOW WARNINGS\G
*************************** 1. row ***************************
  Level: Note
   Code: 1105
Message: Query 'CREATE TABLE t (i INT) DATA DIRECTORY '/var/mysql/data''
         rewritten to 'CREATE TABLE t (i INT) ' by a query rewrite plugin
1 row in set (0.00 sec)

一般クエリーログまたはバイナリログが有効になっている場合、サーバーは、ddl_rewriter による書換え後のステートメントに書き込みます。

インストールされると、ddl_rewriter はプラグインメモリーの使用状況を追跡するためにパフォーマンススキーマ memory/rewriter/ddl_rewriter インストゥルメントを公開します。 セクション27.12.18.10「メモリーサマリーテーブル」を参照してください