polardbxengine/mysql-test/t/dd_upgrade_encrypted.test

70 lines
3.1 KiB
Plaintext

--echo ########################################################################
--echo # Bug#29491749: DATA DICTIONARY UPGRADE FAILING WITH ENCRYPTED MYSQL
--echo # TABLESPACE
--echo #
--echo # Verify that we can upgrade from a server with an encrypted mysql
--echo # tablespace.
--echo ########################################################################
--source include/have_case_sensitive_file_system.inc
--source include/not_valgrind.inc
--source include/big_test.inc
--source include/have_debug.inc
--echo # Stop the mysqld server which was created by MTR default
--let $shutdown_server_timeout= 300
--source include/shutdown_mysqld.inc
--echo # Copy and unzip the datadir
--copy_file $MYSQLTEST_VARDIR/std_data/upgrade/data_encrypted_80016.zip $MYSQL_TMP_DIR/data_encrypted_80016.zip
--file_exists $MYSQL_TMP_DIR/data_encrypted_80016.zip
--exec unzip -qo $MYSQL_TMP_DIR/data_encrypted_80016.zip -d $MYSQL_TMP_DIR
--echo # Set different datadir path
--let $MYSQLD_DATADIR= $MYSQL_TMP_DIR/data_encrypted
--let $MYSQLD_LOG= $MYSQLTEST_VARDIR/log/upgrade_encrypted.log
--echo # Start the server
--let $restart_parameters= restart: --early-plugin-load=keyring_file=$KEYRING_PLUGIN --datadir=$MYSQLD_DATADIR --log-error=$MYSQLD_LOG --loose-keyring_file_data=$MYSQLD_DATADIR/mysecret_keyring $KEYRING_PLUGIN_OPT
--let $wait_counter= 10000
--let $shutdown_server_timeout= 300
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR $MYSQLD_LOG MYSQLD_LOG $KEYRING_PLUGIN_OPT KEYRING_PLUGIN_OPT
--source include/start_mysqld.inc
SET debug='+d,skip_dd_table_access_check';
--echo # The mysql tablespace should be encrypted
SELECT NAME, ENCRYPTION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='mysql';
SELECT NAME,OPTIONS FROM mysql.tablespaces WHERE NAME='mysql';
--echo # Verify that we can un-encrypt the mysql tablespace
ALTER TABLESPACE mysql ENCRYPTION='N';
SELECT NAME, ENCRYPTION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='mysql';
SELECT NAME,OPTIONS FROM mysql.tablespaces WHERE NAME='mysql';
--echo # Restart the server
--let $restart_parameters= restart: --early-plugin-load=keyring_file=$KEYRING_PLUGIN --datadir=$MYSQLD_DATADIR --log-error=$MYSQLD_LOG --loose-keyring_file_data=$MYSQLD_DATADIR/mysecret_keyring $KEYRING_PLUGIN_OPT
--let $wait_counter= 10000
--let $shutdown_server_timeout= 300
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR $MYSQLD_LOG MYSQLD_LOG $KEYRING_PLUGIN_OPT KEYRING_PLUGIN_OPT
--source include/restart_mysqld.inc
SET debug='+d,skip_dd_table_access_check';
--echo # The mysql tablespace should now be be un-encrypted
SELECT NAME, ENCRYPTION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='mysql';
SELECT NAME,OPTIONS FROM mysql.tablespaces WHERE NAME='mysql';
--echo # Shutdown the server, remove the files, and restart with default options
--let $wait_counter= 10000
--let $shutdown_server_timeout= 300
--source include/shutdown_mysqld.inc
--remove_file $MYSQL_TMP_DIR/data_encrypted_80016.zip
--force-rmdir $MYSQL_TMP_DIR/data_encrypted
--echo # Restart the server with default options
--let $restart_parameters= restart;
--let $wait_counter= 10000
--source include/start_mysqld.inc