mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	======== During ibd file creation, InnoDB flushes the page0 without crypt information. During recovery, InnoDB encounters encrypted page read before initialising the crypt data of the tablespace. So it leads t corruption of page and doesn't allow innodb to start. Solution: ========= Write crypt_data information in page0 while creating .ibd file creation. During recovery, crypt_data will be initialised while processing MLOG_FILE_NAME redo log record.
		
			
				
	
	
		
			27 lines
		
	
	
		
			953 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			953 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
SET GLOBAL innodb_encrypt_tables = ON;
 | 
						|
SET GLOBAL innodb_encryption_threads = 1;
 | 
						|
SET GLOBAL innodb_max_dirty_pages_pct = 99;
 | 
						|
SHOW VARIABLES LIKE 'innodb_encrypt%';
 | 
						|
Variable_name	Value
 | 
						|
innodb_encrypt_log	OFF
 | 
						|
innodb_encrypt_tables	ON
 | 
						|
innodb_encrypt_temporary_tables	OFF
 | 
						|
innodb_encryption_rotate_key_age	1
 | 
						|
innodb_encryption_rotation_iops	100
 | 
						|
innodb_encryption_threads	1
 | 
						|
CREATE TABLE t1(f1 INT NOT NULL, f2 CHAR(255), f3 CHAR(255),
 | 
						|
f4 CHAR(255), f5 CHAR(255))ENGINE=INNODB;
 | 
						|
INSERT INTO t1 VALUES(1, "mysql", "mariadb", "batman", "superman");
 | 
						|
INSERT INTO t1 SELECT * FROM t1;
 | 
						|
INSERT INTO t1 SELECT * FROM t1;
 | 
						|
INSERT INTO t1 SELECT * FROM t1;
 | 
						|
INSERT INTO t1 SELECT * FROM t1;
 | 
						|
# Wait max 10 min for key encryption threads to encrypt all spaces
 | 
						|
OPTIMIZE TABLE t1;
 | 
						|
Table	Op	Msg_type	Msg_text
 | 
						|
test.t1	optimize	note	Table does not support optimize, doing recreate + analyze instead
 | 
						|
test.t1	optimize	status	OK
 | 
						|
ALTER TABLE t1 FORCE;
 | 
						|
# Kill the server
 | 
						|
DROP TABLE t1;
 |