84 lines
2.3 KiB
Plaintext
84 lines
2.3 KiB
Plaintext
--source include/have_innodb_max_16k.inc
|
|
--source include/not_asan.inc
|
|
--source include/not_valgrind.inc
|
|
|
|
--echo #
|
|
--echo # Bug #29820184 REDO LOGS MAY SILENTLY BE IGNORED WHEN ENCRYPTED TABLE
|
|
--echo # CANNOT BE DECRYPTED.
|
|
--echo #
|
|
|
|
CREATE TABLE t1(
|
|
a INT NOT NULL PRIMARY KEY,
|
|
c CHAR(200),
|
|
b BLOB,
|
|
INDEX(b(10))) ENGINE=innodb ROW_FORMAT=compressed ENCRYPTION='Y';
|
|
|
|
CREATE TABLE t2(
|
|
a INT NOT NULL PRIMARY KEY,
|
|
c CHAR(200),
|
|
b BLOB,
|
|
INDEX(b(10))) ENGINE=innodb ROW_FORMAT=compressed ENCRYPTION='Y';
|
|
|
|
CREATE TABLE t3(
|
|
a INT NOT NULL PRIMARY KEY,
|
|
c CHAR(200),
|
|
b BLOB,
|
|
INDEX(b(10))) ENGINE=innodb ENCRYPTION='Y';
|
|
|
|
CREATE TABLE t4(
|
|
a INT NOT NULL PRIMARY KEY,
|
|
c CHAR(200),
|
|
b BLOB,
|
|
INDEX(b(10))) ENGINE=innodb ENCRYPTION='Y';
|
|
|
|
--source include/restart_mysqld.inc
|
|
|
|
--source include/no_checkpoint_start.inc
|
|
|
|
--disable_query_log
|
|
--let $i = 20
|
|
BEGIN;
|
|
WHILE ($i)
|
|
{
|
|
eval INSERT INTO t1(a,c,b) VALUES ($i, REPEAT('secret1',20), REPEAT('secret2',6000));
|
|
dec $i;
|
|
}
|
|
--enable_query_log
|
|
|
|
INSERT INTO t2 SELECT * FROM t1;
|
|
INSERT INTO t3 SELECT * FROM t1;
|
|
INSERT INTO t4 SELECT * FROM t1;
|
|
COMMIT;
|
|
|
|
# If checkpoint happens we will skip this test.
|
|
# If no checkpoint happens, InnoDB refuses to
|
|
# start as used encryption key is not found.
|
|
|
|
SET GLOBAL innodb_flush_log_at_trx_commit=1;
|
|
BEGIN;
|
|
UPDATE t1 SET c = REPEAT('secret3', 20);
|
|
UPDATE t2 SET c = REPEAT('secret4', 20);
|
|
UPDATE t3 set c = REPEAT('secret4', 20);
|
|
UPDATE t4 set c = REPEAT('secret4', 20);
|
|
INSERT INTO t1 (a,c,b) VALUES (21, REPEAT('secret5',20), REPEAT('secret6',6000));
|
|
INSERT INTO t2 (a,c,b) VALUES (21, REPEAT('secret7',20), REPEAT('secret8',6000));
|
|
INSERT into t3 (a,c,b) VALUES (21, REPEAT('secret9',20), REPEAT('secre10',6000));
|
|
INSERT into t4 (a,c,b) VALUES (21, REPEAT('secre11',20), REPEAT('secre12',6000));
|
|
COMMIT;
|
|
|
|
let $cleanup= drop TABLE t1,t2,t3,t4;
|
|
--let CLEANUP_IF_CHECKPOINT= $cleanup; --skip "Unexpected checkpoint happened";
|
|
--source include/no_checkpoint_end.inc
|
|
|
|
--echo # Restart mysqld without keyring plugin
|
|
|
|
--error 1
|
|
--exec $MYSQLD_CMD
|
|
|
|
--echo # Restart mysqld with keyring plugin
|
|
--let $restart_parameters=restart:--early-plugin-load="keyring_file=$KEYRING_PLUGIN" --keyring-file-data=$MYSQLTEST_VARDIR/std_data/keys2.txt
|
|
--source include/start_mysqld_no_echo.inc
|
|
|
|
drop TABLE t1,t2,t3,t4;
|
|
--remove_file $MYSQLTEST_VARDIR/std_data/keys2.txt
|