Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  The ddl_rewriter Plugin

7.6.5 ddl_rewriter 插件

MySQL 8.4 中包括一个 ddl_rewriter 插件,该插件在服务器接收到语句前修改CREATE TABLE 语句。该插件删除 ENCRYPTIONDATA DIRECTORYINDEX DIRECTORY 子句,这可能在恢复从加密数据库或存储表外部的 SQL덤프文件时很有帮助。例如,该插件可以使得恢复这些dump文件到未加密实例或不可访问路径的环境中。

在使用 ddl_rewriter 插件前,按照第7.6.5.1节,“安装或卸载 ddl_rewriter”中的说明进行安装。

ddl_rewriter 插件在服务器接收到语句前对其进行检查,根据以下条件对其进行重写:

  • ddl_rewriter 只考虑独立的CREATE TABLE 语句,且这些语句必须是输入行或预备语句的开始。ddl_rewriter 不考虑存储程序定义中的CREATE TABLE 语句。语句可以跨越多行。

  • 在被考虑重写的语句中,以下子句的实例将被重写,每个实例都替换为一个空格:

    • ENCRYPTION

    • DATA DIRECTORY(在表和分区级别)

    • INDEX DIRECTORY(在表和分区级别)

  • 重写不依赖字母大小写。

如果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 暴露性能chema memory/rewriter/ddl_rewriter 仪表,以追踪插件内存使用。见第29.12.20.10节,“内存摘要表”