-- source include/innodb_checksum_algorithm.inc -- source include/innodb_page_size.inc -- source include/have_file_key_management_plugin.inc SET @saved_file_per_table = @@global.innodb_file_per_table; SET @saved_encrypt_tables = @@global.innodb_encrypt_tables; SET @saved_encryption_threads = @@global.innodb_encryption_threads; SET @saved_encryption_key_id = @@global.innodb_default_encryption_key_id; SET GLOBAL innodb_file_per_table = ON; SET GLOBAL innodb_encrypt_tables = ON; SET GLOBAL innodb_encryption_threads = 4; SET GLOBAL innodb_default_encryption_key_id=4; let MYSQLD_DATADIR =`SELECT @@datadir`; # ROW_FORMAT=COMPRESSED is unavailable with innodb_page_size=32k or 64k let $row_format_compressed= `select case when @@global.innodb_page_size>16384 then 'ROW_FORMAT=DYNAMIC' else 'ROW_FORMAT=COMPRESSED' end`; eval create table tce(a serial, b blob, index(b(10))) engine=innodb $row_format_compressed encrypted=yes; eval create table tc(a serial, b blob, index(b(10))) engine=innodb $row_format_compressed encrypted=no; eval create table te(a serial, b blob, index(b(10))) engine=innodb encrypted=yes; eval create table t(a serial, b blob, index(b(10))) engine=innodb encrypted=no; eval create table tpe(a serial, b blob, index(b(10))) engine=innodb page_compressed=yes encrypted=yes; eval create table tp(a serial, b blob, index(b(10))) engine=innodb page_compressed=yes encrypted=no; begin; eval insert into tce(b) values (repeat('secret',20)); eval insert into tc(b) values (repeat('secret',20)); eval insert into te(b) values (repeat('secret',20)); eval insert into t(b) values (repeat('secret',20)); eval insert into tpe(b) values (repeat('secret',20)); eval insert into tp(b) values (repeat('secret',20)); commit; eval FLUSH TABLES tce, tc, te, t, tpe, tp FOR EXPORT; perl; do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; ib_backup_tablespaces("test", ("tce", "tc", "te", "t", "tpe", "tp")); EOF --list_files $MYSQLD_DATADIR/test UNLOCK TABLES; ALTER TABLE tce DISCARD TABLESPACE; ALTER TABLE tc DISCARD TABLESPACE; ALTER TABLE te DISCARD TABLESPACE; ALTER TABLE t DISCARD TABLESPACE; ALTER TABLE tpe DISCARD TABLESPACE; ALTER TABLE tp DISCARD TABLESPACE; perl; do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; ib_restore_tablespaces("test", ("tce", "tc", "te", "t", "tpe", "tp")); EOF ALTER TABLE tce IMPORT TABLESPACE; update tce set b=substr(b,1); ALTER TABLE tc IMPORT TABLESPACE; update tc set b=substr(b,1); ALTER TABLE te IMPORT TABLESPACE; update te set b=substr(b,1); ALTER TABLE t IMPORT TABLESPACE; update t set b=substr(b,1); ALTER TABLE tpe IMPORT TABLESPACE; update tpe set b=substr(b,1); ALTER TABLE tp IMPORT TABLESPACE; update tp set b=substr(b,1); CHECK TABLE tce, tc, te, t, tpe, tp; DROP TABLE tce, tc, te, t, tpe, tp; SET GLOBAL innodb_file_per_table = @saved_file_per_table; SET GLOBAL innodb_encrypt_tables = @saved_encrypt_tables; SET GLOBAL innodb_encryption_threads = @saved_encryption_threads; SET GLOBAL innodb_default_encryption_key_id = @saved_encryption_key_id;