Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

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

7.6.5 ddl_rewriter 插件

MySQL 8.3 包括一个 ddl_rewriter 插件,该插件修改服务器收到的 CREATE TABLE 语句,在服务器解析和执行它们之前。该插件删除 ENCRYPTIONDATA DIRECTORYINDEX DIRECTORY 子句,这可能有助于从加密数据库或表存储在数据目录外的 SQL 转储文件中恢复表格。例如,该插件可能使恢复这些转储文件到未加密的实例或在数据目录外的路径不可访问的环境中。

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

ddl_rewriter 在服务器解析之前检查 SQL 语句,根据以下条件重写它们:

  • 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 插件公开了性能架构 memory/rewriter/ddl_rewriter 仪表,以跟踪插件的内存使用情况。请参阅 第 29.12.20.10 节“内存摘要表”