在第一步中,启用了 ddl_rewriter 插件,如实现部分所示。现在,将使用相同的 SQL 命令加载结构。
mysql> create table ddl_rwtest
-> (id int primary key, name varchar(16),dob date,msg text)
-> ENCRYPTION='Y'
-> DATA DIRECTORY = '/mysql/data'
-> INDEX DIRECTORY = '/mysql/index';
Query OK, 0 rows affected, 1 warning (0.08 sec)
mysql> show warnings\G
*************************** 1. row ***************************
Level: Note
Code: 1105
Message: Query 'create table ddl_rwtest
(id int primary key, name varchar(16),dob date,msg text)
ENCRYPTION='Y'
DATA DIRECTORY = '/mysql/data'
INDEX DIRECTORY = '/mysql/index'' rewritten to 'create table ddl_rwtest
(id int primary key, name varchar(16),dob date,msg text) ' by a query rewrite plugin
1 row in set (0.00 sec)
mysql> show create table ddl_rwtest\G
*************************** 1. row ***************************
Table: ddl_rwtest
Create Table: CREATE TABLE `ddl_rwtest` (
`id` int NOT NULL,
`name` varchar(16) DEFAULT NULL,
`dob` date DEFAULT NULL,
`msg` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.01 sec)
从上面的日志中,ddl_rewriter 插件已从我的 SQL 命令中删除了那些加密和数据/索引目录。您可以验证警告消息以确认这一点。
该插件将真正帮助使用逻辑备份进行大规模数据结构迁移。