mirror of
https://github.com/MariaDB/server.git
synced 2025-06-10 14:42:05 +03:00
When using a wrong key, all encrypted pages will look corrupted, and occasionally the test may access other pages than the clustered index root page.
66 lines
2.4 KiB
Plaintext
66 lines
2.4 KiB
Plaintext
--source include/have_innodb.inc
|
|
-- source include/have_file_key_management_plugin.inc
|
|
# embedded does not support restart
|
|
-- source include/not_embedded.inc
|
|
|
|
#
|
|
# MDEV-11004: Unable to start (Segfault or os error 2) when encryption key missing
|
|
#
|
|
|
|
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[123]\\.ibd' cannot be decrypted\\.");
|
|
call mtr.add_suppression("InnoDB: Encrypted page [1-9][0-9]*:[1-9][0-9]* in file .*test.t[12].ibd looks corrupted; key_version=1");
|
|
|
|
--echo
|
|
--echo # Start server with keys2.txt
|
|
-- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
|
-- source include/restart_mysqld.inc
|
|
|
|
CREATE TABLE t1(a int not null primary key auto_increment, b varchar(128)) engine=innodb ENCRYPTED=YES ENCRYPTION_KEY_ID=19;
|
|
CREATE TABLE t2(a int not null primary key auto_increment, b varchar(128)) engine=innodb ENCRYPTED=YES ENCRYPTION_KEY_ID=1;
|
|
CREATE TABLE t3(a int not null primary key auto_increment, b varchar(128)) engine=innodb ENCRYPTED=NO;
|
|
INSERT INTO t1(b) VALUES ('thisissecredmessage');
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t2 SELECT * FROM t1;
|
|
INSERT INTO t3 SELECT * FROM t1;
|
|
|
|
--echo
|
|
--echo # Restart server with keys3.txt
|
|
-- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys3.txt
|
|
-- source include/restart_mysqld.inc
|
|
|
|
set global innodb_encryption_rotate_key_age = 1;
|
|
use test;
|
|
CREATE TABLE t4(a int not null primary key auto_increment, b varchar(128)) engine=innodb ENCRYPTED=YES ENCRYPTION_KEY_ID=1;
|
|
SELECT SLEEP(5);
|
|
SELECT COUNT(1) FROM t3;
|
|
SELECT COUNT(1) FROM t2;
|
|
--error 1296
|
|
SELECT COUNT(1) FROM t2,t1 where t2.a = t1.a;
|
|
--error 1296
|
|
SELECT COUNT(1) FROM t1 where b = 'ab';
|
|
--error 1296
|
|
SELECT COUNT(1) FROM t1;
|
|
|
|
--echo
|
|
--echo # Start server with keys2.txt
|
|
-- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
|
|
-- source include/restart_mysqld.inc
|
|
|
|
SELECT COUNT(1) FROM t1;
|
|
SELECT COUNT(1) FROM t2;
|
|
SELECT COUNT(1) FROM t3;
|
|
|
|
DROP TABLE t1, t2, t3;
|
|
|
|
|