set global innodb_file_per_table=OFF; call mtr.add_suppression("(mysqld|mariadbd).*: file-key-management-filename is not set"); call mtr.add_suppression("Plugin 'file_key_management' init function returned error."); call mtr.add_suppression("Plugin 'file_key_management' registration as a ENCRYPTION failed."); flush tables; create table t1(a int not null primary key, b char(200)) engine=innodb; # Restart server with encryption # restart: --plugin-load-add=file_key_management --loose-file-key-management --loose-file-key-management-filename=MYSQL_TEST_DIR/std_data/keys.txt --file-key-management-encryption-algorithm=aes_cbc --innodb-encrypt-tables=ON --innodb-encryption-threads=4 --innodb-tablespaces-encryption --innodb-encryption-rotate-key-age=15 # Wait until encryption threads have encrypted all tablespaces SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0; NAME SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0; NAME innodb_system mysql/innodb_index_stats mysql/innodb_table_stats mysql/transaction_registry # Success! SELECT * from t1; a b # Now turn off encryption and wait for threads to decrypt all tablespaces SET GLOBAL innodb_encrypt_tables = off; SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0; NAME innodb_system mysql/innodb_index_stats mysql/innodb_table_stats mysql/transaction_registry SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0; NAME # Success! # Restart server with no encryption setup, there should be no crashes # restart: --skip-file-key-management --innodb-encrypt-tables=OFF --innodb-encryption-threads=0 --innodb-tablespaces-encryption SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0; NAME innodb_system mysql/innodb_index_stats mysql/innodb_table_stats mysql/transaction_registry SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0; NAME SELECT * from t1; a b DROP TABLE t1;