mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-11782: Redefine the innodb_encrypt_log format
Write only one encryption key to the checkpoint page. Use 4 bytes of nonce. Encrypt more of each redo log block, only skipping the 4-byte field LOG_BLOCK_HDR_NO which the initialization vector is derived from. Issue notes, not warning messages for rewriting the redo log files. recv_recovery_from_checkpoint_finish(): Do not generate any redo log, because we must avoid that before rewriting the redo log files, or otherwise a crash during a redo log rewrite (removing or adding encryption) may end up making the database unrecoverable. Instead, do these tasks in innobase_start_or_create_for_mysql(). Issue a firm "Missing MLOG_CHECKPOINT" error message. Remove some unreachable code and duplicated error messages for log corruption. LOG_HEADER_FORMAT_ENCRYPTED: A flag for identifying an encrypted redo log format. log_group_t::is_encrypted(), log_t::is_encrypted(): Determine if the redo log is in encrypted format. recv_find_max_checkpoint(): Interpret LOG_HEADER_FORMAT_ENCRYPTED. srv_prepare_to_delete_redo_log_files(): Display NOTE messages about adding or removing encryption. Do not issue warnings for redo log resizing any more. innobase_start_or_create_for_mysql(): Rebuild the redo logs also when the encryption changes. innodb_log_checksums_func_update(): Always use the CRC-32C checksum if innodb_encrypt_log. If needed, issue a warning that innodb_encrypt_log implies innodb_log_checksums. log_group_write_buf(): Compute the checksum on the encrypted block contents, so that transmission errors or incomplete blocks can be detected without decrypting. Rewrite most of the redo log encryption code. Only remember one encryption key at a time (but remember up to 5 when upgrading from the MariaDB 10.1 format.)
This commit is contained in:
@ -1,19 +0,0 @@
|
||||
call mtr.add_suppression("InnoDB: New log files created, LSN=.*");
|
||||
call mtr.add_suppression("InnoDB: Creating foreign key constraint system tables.");
|
||||
call mtr.add_suppression("InnoDB: Error: Table .*");
|
||||
CREATE TABLE t1 (
|
||||
pk bigint auto_increment,
|
||||
col_int int,
|
||||
col_int_key int,
|
||||
col_char char(12),
|
||||
col_char_key char(12),
|
||||
primary key (pk),
|
||||
key (`col_int_key` ),
|
||||
key (`col_char_key` )
|
||||
) ENGINE=InnoDB;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
INSERT INTO t1 VALUES (NULL,1,1,'foo','foo'),(NULL,2,2,'bar','bar'),(NULL,3,3,'baz','baz'),(NULL,4,4,'qux','qux');
|
||||
INSERT INTO t2
|
||||
SELECT NULL, a1.col_int, a1.col_int_key, a1.col_char, a1.col_char_key
|
||||
FROM t1 a1, t1 a2, t1 a3, t1 a4, t1 a5, t1 a6, t1 a7, t1 a8, t1 a9, t1 a10;
|
||||
DROP TABLE t1, t2;
|
@ -1,53 +0,0 @@
|
||||
create table t1(c1 bigint not null, b char(200), c varchar(200)) engine=innodb encrypted=yes encryption_key_id=1;
|
||||
show warnings;
|
||||
Level Code Message
|
||||
create procedure innodb_insert_proc (repeat_count int)
|
||||
begin
|
||||
declare current_num int;
|
||||
set current_num = 0;
|
||||
while current_num < repeat_count do
|
||||
insert into t1 values(current_num, substring(MD5(RAND()), -64), REPEAT('privatejanprivate',10));
|
||||
set current_num = current_num + 1;
|
||||
end while;
|
||||
end//
|
||||
commit;
|
||||
begin;
|
||||
call innodb_insert_proc(2000);
|
||||
commit;
|
||||
update t1 set c1 = c1 +1;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
2000
|
||||
# Kill the server
|
||||
# ibdata1 yes on expecting NOT FOUND
|
||||
NOT FOUND /privatejanprivate/ in ibdata1
|
||||
# t1 yes on expecting NOT FOUND
|
||||
NOT FOUND /privatejanprivate/ in t1.ibd
|
||||
# log0 yes on expecting NOT FOUND
|
||||
NOT FOUND /privatejanprivate/ in ib_logfile0
|
||||
# log1 yes on expecting NOT FOUND
|
||||
NOT FOUND /privatejanprivate/ in ib_logfile1
|
||||
# Restart mysqld --innodb_encrypt_log=0
|
||||
insert into t1 values(5000, substring(MD5(RAND()), -64), REPEAT('publicmessage',10));
|
||||
insert into t1 values(5001, substring(MD5(RAND()), -64), REPEAT('publicmessage',10));
|
||||
insert into t1 values(5002, substring(MD5(RAND()), -64), REPEAT('publicmessage',10));
|
||||
insert into t1 values(5003, substring(MD5(RAND()), -64), REPEAT('publicmessage',10));
|
||||
insert into t1 values(5004, substring(MD5(RAND()), -64), REPEAT('publicmessage',10));
|
||||
# ibdata1 yes on expecting NOT FOUND
|
||||
NOT FOUND /privatejanprivate/ in ibdata1
|
||||
# t1 yes on expecting NOT FOUND
|
||||
NOT FOUND /privatejanprivate/ in t1.ibd
|
||||
# log0 yes on expecting NOT FOUND
|
||||
NOT FOUND /privatejanprivate/ in ib_logfile0
|
||||
# log1 yes on expecting NOT FOUND
|
||||
NOT FOUND /privatejanprivate/ in ib_logfile1
|
||||
# ibdata1 yes on expecting NOT FOUND
|
||||
NOT FOUND /publicmessage/ in ibdata1
|
||||
# t1 yes on expecting NOT FOUND
|
||||
NOT FOUND /publicmessage/ in t1.ibd
|
||||
# log0 no on expecting FOUND/NOTFOUND depending where insert goes
|
||||
FOUND /publicmessage/ in ib_logfile0
|
||||
# log1 no on expecting FOUND/NOTFOUND depending where insert goes
|
||||
NOT FOUND /publicmessage/ in ib_logfile1
|
||||
drop procedure innodb_insert_proc;
|
||||
drop table t1;
|
65
mysql-test/suite/encryption/r/innodb_encrypt_log.result
Normal file
65
mysql-test/suite/encryption/r/innodb_encrypt_log.result
Normal file
@ -0,0 +1,65 @@
|
||||
#
|
||||
# MDEV-9011: Redo log encryption does not work
|
||||
#
|
||||
#
|
||||
# MDEV-9422 Encrypted redo log checksum errors
|
||||
# on restart after killing busy server instance
|
||||
#
|
||||
SET GLOBAL innodb_log_checksums=0;
|
||||
Warnings:
|
||||
Warning 138 innodb_encrypt_log implies innodb_log_checksums
|
||||
SELECT @@global.innodb_log_checksums;
|
||||
@@global.innodb_log_checksums
|
||||
1
|
||||
CREATE TABLE t0 (
|
||||
pk bigint auto_increment,
|
||||
col_int int,
|
||||
col_int_key int,
|
||||
col_char char(12),
|
||||
col_char_key char(12),
|
||||
primary key (pk),
|
||||
key (col_int_key),
|
||||
key (col_char_key)
|
||||
) ENGINE=InnoDB ENCRYPTED=YES ENCRYPTION_KEY_ID=1;
|
||||
CREATE TEMPORARY TABLE t LIKE t0;
|
||||
INSERT INTO t VALUES
|
||||
(NULL,1,1,'private','secret'),(NULL,2,2,'sacred','success'),
|
||||
(NULL,3,3,'story','secure'),(NULL,4,4,'security','sacrament');
|
||||
SET GLOBAL innodb_flush_log_at_trx_commit=1;
|
||||
INSERT INTO t0
|
||||
SELECT NULL, t1.col_int, t1.col_int_key, t1.col_char, t1.col_char_key
|
||||
FROM t t1, t t2, t t3, t t4, t t5;
|
||||
# Kill the server
|
||||
# ibdata1 expecting NOT FOUND
|
||||
NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)/ in ibdata1
|
||||
# t0.ibd expecting NOT FOUND
|
||||
NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)/ in t0.ibd
|
||||
# ib_logfile0 expecting NOT FOUND
|
||||
NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)/ in ib_logfile0
|
||||
# ib_logfile1 expecting NOT FOUND
|
||||
NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)/ in ib_logfile1
|
||||
# Restart without redo log encryption
|
||||
SELECT COUNT(*) FROM t0;
|
||||
COUNT(*)
|
||||
1024
|
||||
CHECK TABLE t0;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t0 check status OK
|
||||
SET GLOBAL innodb_flush_log_at_trx_commit=1;
|
||||
INSERT INTO t0 VALUES(NULL, 5, 5, 'public', 'gossip');
|
||||
# Kill the server
|
||||
# ib_logfile0 expecting NOT FOUND
|
||||
NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)/ in ib_logfile0
|
||||
# ib_logfile0 expecting FOUND
|
||||
FOUND /public|gossip/ in ib_logfile0
|
||||
# ibdata1 expecting NOT FOUND
|
||||
NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)|public|gossip/ in ibdata1
|
||||
# t0.ibd expecting NOT FOUND
|
||||
NOT FOUND /private|secret|sacr(ed|ament)|success|story|secur(e|ity)|public|gossip/ in t0.ibd
|
||||
SELECT COUNT(*) FROM t0;
|
||||
COUNT(*)
|
||||
1025
|
||||
CHECK TABLE t0;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t0 check status OK
|
||||
DROP TABLE t0;
|
@ -41,7 +41,7 @@ WHERE engine = 'innodb'
|
||||
AND support IN ('YES', 'DEFAULT', 'ENABLED');
|
||||
ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS
|
||||
FOUND /InnoDB: Invalid log block checksum. block: 2372 checkpoint no: 1 expected: 3362026715 found: 144444122/ in mysqld.1.err
|
||||
FOUND /InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\./ in mysqld.1.err
|
||||
FOUND /InnoDB: Missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\./ in mysqld.1.err
|
||||
# --innodb-force-recovery=6 (skip the entire redo log)
|
||||
SELECT * FROM INFORMATION_SCHEMA.ENGINES
|
||||
WHERE engine = 'innodb'
|
||||
@ -54,7 +54,6 @@ SELECT * FROM INFORMATION_SCHEMA.ENGINES
|
||||
WHERE engine = 'innodb'
|
||||
AND support IN ('YES', 'DEFAULT', 'ENABLED');
|
||||
ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS
|
||||
FOUND /InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 1213964 and the end 1213952\./ in mysqld.1.err
|
||||
# --innodb-force-recovery=6 (skip the entire redo log)
|
||||
SELECT * FROM INFORMATION_SCHEMA.ENGINES
|
||||
WHERE engine = 'innodb'
|
||||
@ -90,6 +89,7 @@ SELECT COUNT(*) `1` FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb'
|
||||
AND support IN ('YES', 'DEFAULT', 'ENABLED');
|
||||
1
|
||||
1
|
||||
FOUND /InnoDB: Encrypting redo log/ in mysqld.1.err
|
||||
ib_buffer_pool
|
||||
ib_logfile0
|
||||
ib_logfile1
|
||||
|
@ -1,6 +0,0 @@
|
||||
--innodb-encrypt-log=ON
|
||||
--plugin-load-add=$FILE_KEY_MANAGEMENT_SO
|
||||
--loose-file-key-management
|
||||
--loose-file-key-management-filename=$MYSQL_TEST_DIR/std_data/logkey.txt
|
||||
--file-key-management-encryption-algorithm=aes_cbc
|
||||
--innodb-buffer-pool-size=128M
|
@ -1,41 +0,0 @@
|
||||
-- source include/have_innodb.inc
|
||||
-- source include/not_embedded.inc
|
||||
# test takes very long time on debug build
|
||||
-- source include/not_debug.inc
|
||||
-- source include/big_test.inc
|
||||
-- source filekeys_plugin.inc
|
||||
|
||||
call mtr.add_suppression("InnoDB: New log files created, LSN=.*");
|
||||
call mtr.add_suppression("InnoDB: Creating foreign key constraint system tables.");
|
||||
call mtr.add_suppression("InnoDB: Error: Table .*");
|
||||
|
||||
#
|
||||
# MDEV-9422: Checksum errors on restart when killing busy instance that uses encrypted XtraDB tables
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
pk bigint auto_increment,
|
||||
col_int int,
|
||||
col_int_key int,
|
||||
col_char char(12),
|
||||
col_char_key char(12),
|
||||
primary key (pk),
|
||||
key (`col_int_key` ),
|
||||
key (`col_char_key` )
|
||||
) ENGINE=InnoDB;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
|
||||
INSERT INTO t1 VALUES (NULL,1,1,'foo','foo'),(NULL,2,2,'bar','bar'),(NULL,3,3,'baz','baz'),(NULL,4,4,'qux','qux');
|
||||
INSERT INTO t2
|
||||
SELECT NULL, a1.col_int, a1.col_int_key, a1.col_char, a1.col_char_key
|
||||
FROM t1 a1, t1 a2, t1 a3, t1 a4, t1 a5, t1 a6, t1 a7, t1 a8, t1 a9, t1 a10;
|
||||
|
||||
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||
--shutdown_server 0
|
||||
--source include/wait_until_disconnected.inc
|
||||
|
||||
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
||||
--enable_reconnect
|
||||
--source include/wait_until_connected_again.inc
|
||||
|
||||
DROP TABLE t1, t2;
|
@ -1,94 +0,0 @@
|
||||
-- source include/have_innodb.inc
|
||||
-- source include/not_embedded.inc
|
||||
-- source filekeys_plugin.inc
|
||||
|
||||
#
|
||||
# MDEV-9011: Redo log encryption does not work
|
||||
#
|
||||
|
||||
create table t1(c1 bigint not null, b char(200), c varchar(200)) engine=innodb encrypted=yes encryption_key_id=1;
|
||||
show warnings;
|
||||
|
||||
delimiter //;
|
||||
create procedure innodb_insert_proc (repeat_count int)
|
||||
begin
|
||||
declare current_num int;
|
||||
set current_num = 0;
|
||||
while current_num < repeat_count do
|
||||
insert into t1 values(current_num, substring(MD5(RAND()), -64), REPEAT('privatejanprivate',10));
|
||||
set current_num = current_num + 1;
|
||||
end while;
|
||||
end//
|
||||
delimiter ;//
|
||||
commit;
|
||||
|
||||
begin;
|
||||
call innodb_insert_proc(2000);
|
||||
commit;
|
||||
|
||||
update t1 set c1 = c1 +1;
|
||||
select count(*) from t1;
|
||||
|
||||
--let $MYSQLD_DATADIR=`select @@datadir`
|
||||
--let ib1_IBD = $MYSQLD_DATADIR/ibdata1
|
||||
--let t1_IBD = $MYSQLD_DATADIR/test/t1.ibd
|
||||
--let log0 = $MYSQLD_DATADIR/ib_logfile0
|
||||
--let log1 = $MYSQLD_DATADIR/ib_logfile1
|
||||
--let SEARCH_RANGE = 10000000
|
||||
--let SEARCH_PATTERN=privatejanprivate
|
||||
|
||||
-- source include/kill_mysqld.inc
|
||||
|
||||
--echo # ibdata1 yes on expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$ib1_IBD
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--echo # t1 yes on expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$t1_IBD
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--echo # log0 yes on expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$log0
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--echo # log1 yes on expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$log1
|
||||
-- source include/search_pattern_in_file.inc
|
||||
|
||||
--echo # Restart mysqld --innodb_encrypt_log=0
|
||||
-- let $restart_parameters=--innodb_encrypt_log=0
|
||||
-- source include/start_mysqld.inc
|
||||
|
||||
insert into t1 values(5000, substring(MD5(RAND()), -64), REPEAT('publicmessage',10));
|
||||
insert into t1 values(5001, substring(MD5(RAND()), -64), REPEAT('publicmessage',10));
|
||||
insert into t1 values(5002, substring(MD5(RAND()), -64), REPEAT('publicmessage',10));
|
||||
insert into t1 values(5003, substring(MD5(RAND()), -64), REPEAT('publicmessage',10));
|
||||
insert into t1 values(5004, substring(MD5(RAND()), -64), REPEAT('publicmessage',10));
|
||||
|
||||
--let SEARCH_PATTERN=privatejanprivate
|
||||
--echo # ibdata1 yes on expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$ib1_IBD
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--echo # t1 yes on expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$t1_IBD
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--echo # log0 yes on expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$log0
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--echo # log1 yes on expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$log1
|
||||
-- source include/search_pattern_in_file.inc
|
||||
|
||||
--let SEARCH_PATTERN=publicmessage
|
||||
--echo # ibdata1 yes on expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$ib1_IBD
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--echo # t1 yes on expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$t1_IBD
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--echo # log0 no on expecting FOUND/NOTFOUND depending where insert goes
|
||||
-- let SEARCH_FILE=$log0
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--echo # log1 no on expecting FOUND/NOTFOUND depending where insert goes
|
||||
-- let SEARCH_FILE=$log1
|
||||
-- source include/search_pattern_in_file.inc
|
||||
|
||||
drop procedure innodb_insert_proc;
|
||||
drop table t1;
|
94
mysql-test/suite/encryption/t/innodb_encrypt_log.test
Normal file
94
mysql-test/suite/encryption/t/innodb_encrypt_log.test
Normal file
@ -0,0 +1,94 @@
|
||||
-- source include/have_innodb.inc
|
||||
-- source include/not_embedded.inc
|
||||
-- source filekeys_plugin.inc
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-9011: Redo log encryption does not work
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-9422 Encrypted redo log checksum errors
|
||||
--echo # on restart after killing busy server instance
|
||||
--echo #
|
||||
|
||||
--let $MYSQLD_DATADIR=`select @@datadir`
|
||||
|
||||
SET GLOBAL innodb_log_checksums=0;
|
||||
SELECT @@global.innodb_log_checksums;
|
||||
|
||||
CREATE TABLE t0 (
|
||||
pk bigint auto_increment,
|
||||
col_int int,
|
||||
col_int_key int,
|
||||
col_char char(12),
|
||||
col_char_key char(12),
|
||||
primary key (pk),
|
||||
key (col_int_key),
|
||||
key (col_char_key)
|
||||
) ENGINE=InnoDB ENCRYPTED=YES ENCRYPTION_KEY_ID=1;
|
||||
CREATE TEMPORARY TABLE t LIKE t0;
|
||||
|
||||
INSERT INTO t VALUES
|
||||
(NULL,1,1,'private','secret'),(NULL,2,2,'sacred','success'),
|
||||
(NULL,3,3,'story','secure'),(NULL,4,4,'security','sacrament');
|
||||
|
||||
# Force a redo log flush at the next commit.
|
||||
SET GLOBAL innodb_flush_log_at_trx_commit=1;
|
||||
INSERT INTO t0
|
||||
SELECT NULL, t1.col_int, t1.col_int_key, t1.col_char, t1.col_char_key
|
||||
FROM t t1, t t2, t t3, t t4, t t5;
|
||||
|
||||
--source include/kill_mysqld.inc
|
||||
|
||||
--let SEARCH_RANGE = 10000000
|
||||
--let SEARCH_PATTERN=private|secret|sacr(ed|ament)|success|story|secur(e|ity)
|
||||
|
||||
--echo # ibdata1 expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$MYSQLD_DATADIR/ibdata1
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--echo # t0.ibd expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$MYSQLD_DATADIR/test/t0.ibd
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--echo # ib_logfile0 expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$MYSQLD_DATADIR/ib_logfile0
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--echo # ib_logfile1 expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$MYSQLD_DATADIR/ib_logfile1
|
||||
-- source include/search_pattern_in_file.inc
|
||||
|
||||
--echo # Restart without redo log encryption
|
||||
-- let $restart_parameters=--skip-innodb-encrypt-log --innodb-log-files-in-group=1
|
||||
-- source include/start_mysqld.inc
|
||||
|
||||
SELECT COUNT(*) FROM t0;
|
||||
CHECK TABLE t0;
|
||||
# Force a redo log flush at the next commit.
|
||||
SET GLOBAL innodb_flush_log_at_trx_commit=1;
|
||||
# If we tested with UPDATE, we would get clear-text redo log for
|
||||
# encrypted undo log written with the old secret values.
|
||||
INSERT INTO t0 VALUES(NULL, 5, 5, 'public', 'gossip');
|
||||
|
||||
--source include/kill_mysqld.inc
|
||||
|
||||
--echo # ib_logfile0 expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$MYSQLD_DATADIR/ib_logfile0
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--let SEARCH_PATTERN=public|gossip
|
||||
--echo # ib_logfile0 expecting FOUND
|
||||
-- let SEARCH_FILE=$MYSQLD_DATADIR/ib_logfile0
|
||||
-- source include/search_pattern_in_file.inc
|
||||
|
||||
--let SEARCH_PATTERN=private|secret|sacr(ed|ament)|success|story|secur(e|ity)|public|gossip
|
||||
--echo # ibdata1 expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$MYSQLD_DATADIR/ibdata1
|
||||
-- source include/search_pattern_in_file.inc
|
||||
--echo # t0.ibd expecting NOT FOUND
|
||||
-- let SEARCH_FILE=$MYSQLD_DATADIR/test/t0.ibd
|
||||
-- source include/search_pattern_in_file.inc
|
||||
|
||||
--let $restart_parameters=
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
SELECT COUNT(*) FROM t0;
|
||||
CHECK TABLE t0;
|
||||
DROP TABLE t0;
|
@ -3,9 +3,12 @@
|
||||
|
||||
SELECT COUNT(*) `1` FROM INFORMATION_SCHEMA.ENGINES WHERE engine='innodb'
|
||||
AND support IN ('YES', 'DEFAULT', 'ENABLED');
|
||||
--source include/shutdown_mysqld.inc
|
||||
--let SEARCH_PATTERN= InnoDB: Encrypting redo log
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--let $restart_parameters=
|
||||
--source include/restart_mysqld.inc
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
--list_files $bugdir
|
||||
--remove_files_wildcard $bugdir
|
||||
|
Reference in New Issue
Block a user