MySQL 8.0.16及更高版本包含一个ddl_rewriter 插件,该插件可CREATE TABLE 在服务器解析和执行语句之前修改服务器接收的语句。该插件删除了ENCRYPTION, DATA DIRECTORY和INDEX DIRECTORY子句,这在从已加密数据库或表存储在数据目录之外的数据库创建的SQL转储文件中还原表时可能会有所帮助。例如,该插件可以使得能够将这样的转储文件恢复到未加密的实例中或在数据目录外的路径不可访问的环境中。
在使用ddl_rewriter插件之前,请按照第5.6.5.1节“安装或卸载ddl_rewriter”中提供的说明进行 安装。
ddl_rewriter 在解析之前检查服务器收到的SQL语句,并根据以下条件重写它们:
ddl_rewriter仅考虑CREATE TABLE语句,并且仅当它们是出现在输入行开头或预准备语句文本开头的独立语句时才考虑 。ddl_rewriter不考虑CREATE TABLE存储程序定义中的语句。语句可以跨越多行。- 在考虑重写的语句中,以下子句的实例将被重写,并且每个实例都用一个空格替换:
ENCRYPTIONDATA 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将公开Performance Schema memory/rewriter/ddl_rewriter 工具以跟踪插件内存的使用。请参见 第26.12.18.10节“内存摘要表”
MySQL 8.0.16及更高版本包含一个ddl_rewriter 插件,该插件可CREATE TABLE 在服务器解析和执行语句之前修改服务器接收的语句。该插件删除了ENCRYPTION, DATA DIRECTORY和INDEX DIRECTORY子句,这在从已加密数据库或表存储在数据目录之外的数据库创建的SQL转储文件中还原表时可能会有所帮助。例如,该插件可以使得能够将这样的转储文件恢复到未加密的实例中或在数据目录外的路径不可访问的环境中。
在使用ddl_rewriter插件之前,请按照第5.6.5.1节“安装或卸载ddl_rewriter”中提供的说明进行 安装。
ddl_rewriter 在解析之前检查服务器收到的SQL语句,并根据以下条件重写它们:
ddl_rewriter仅考虑CREATE TABLE语句,并且仅当它们是出现在输入行开头或预准备语句文本开头的独立语句时才考虑 。ddl_rewriter不考虑CREATE TABLE存储程序定义中的语句。语句可以跨越多行。- 在考虑重写的语句中,以下子句的实例将被重写,并且每个实例都用一个空格替换:
ENCRYPTIONDATA 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将公开Performance Schema memory/rewriter/ddl_rewriter 工具以跟踪插件内存的使用。请参见 第26.12.18.10节“内存摘要表”




