79 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
| --echo #
 | |
| --echo # Show the limitations of using a 'dotfile' hidden directory
 | |
| --echo #
 | |
| 
 | |
| LET $MYSQLD_DATADIR = `select @@datadir`;
 | |
| LET $INNODB_PAGE_SIZE = `select @@innodb_page_size`;
 | |
| SET default_storage_engine=InnoDB;
 | |
| 
 | |
| CREATE TABLE t1 (a INT);
 | |
| CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd';
 | |
| 
 | |
| --echo # Shutdown and make the another directory that is HIDDEN.
 | |
| --source include/shutdown_mysqld.inc
 | |
| --mkdir $MYSQL_TMP_DIR/.other_dir
 | |
| --mkdir $MYSQL_TMP_DIR/.other_dir/test
 | |
| 
 | |
| --echo # Copy ibdata1, test/t1.ibd and ts1.ibd to the hidden directory.
 | |
| --copy_file $MYSQLD_DATADIR/ibdata1 $MYSQL_TMP_DIR/.other_dir/ibdata1
 | |
| --copy_file $MYSQLD_DATADIR/test/t1.ibd $MYSQL_TMP_DIR/.other_dir/test/t1.ibd
 | |
| --copy_file $MYSQLD_DATADIR/ts1.ibd $MYSQL_TMP_DIR/.other_dir/ts1.ibd
 | |
| 
 | |
| --echo # Restart with the --innodb-directories=MYSQL_TMP_DIR
 | |
| --echo #   The tablespaces in the hidden directory will not be scanned.
 | |
| --replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
 | |
| LET $restart_parameters = restart:--innodb-directories=$MYSQL_TMP_DIR;
 | |
| --replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
 | |
| --source include/start_mysqld.inc
 | |
| --replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
 | |
| SHOW VARIABLES LIKE 'innodb_directories';
 | |
| 
 | |
| --echo # Show that tablespaces can be built in a HIDDEN directory.
 | |
| --echo # NOTE: This means that a tablespace can be created in a location that cannot be recovered. !!!
 | |
| --replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
 | |
| eval CREATE TABLE t2 (a INT) DATA DIRECTORY='$MYSQL_TMP_DIR/.other_dir';
 | |
| --replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
 | |
| eval CREATE TABLESPACE ts2 ADD DATAFILE '$MYSQL_TMP_DIR/.other_dir/ts2.ibd';
 | |
| 
 | |
| --source suite/innodb/include/show_i_s_tablespaces.inc
 | |
| 
 | |
| --echo # Shutdown again.
 | |
| --source include/shutdown_mysqld.inc
 | |
| 
 | |
| --echo # Make a copy of the new tablespaces in the datadir
 | |
| --copy_file $MYSQL_TMP_DIR/.other_dir/test/t2.ibd $MYSQLD_DATADIR/test/t2.ibd
 | |
| --copy_file $MYSQL_TMP_DIR/.other_dir/ts2.ibd $MYSQLD_DATADIR/ts2.ibd
 | |
| 
 | |
| --echo # Restart again.
 | |
| --echo #   The tablespaces in the hidden directory will not be scanned and the
 | |
| --echo #   tablespaces originally created in the hidden directory will be marked
 | |
| --echo #   as MOVED to the datadir.
 | |
| 
 | |
| --replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
 | |
| --source include/start_mysqld.inc
 | |
| 
 | |
| --source suite/innodb/include/show_i_s_tablespaces.inc
 | |
| 
 | |
| --echo #
 | |
| --echo # Validate the message that should have been put into the error log.
 | |
| --echo #
 | |
| let SEARCH_FILE=$MYSQLTEST_VARDIR/log/mysqld.1.err;
 | |
| let SEARCH_PATTERN=Directory '.*' will not be scanned because it is a hidden directory;
 | |
| --source include/search_pattern.inc
 | |
| 
 | |
| --echo #
 | |
| --echo # Cleanup
 | |
| --echo #
 | |
| DROP TABLE t1;
 | |
| DROP TABLE t2;
 | |
| DROP TABLESPACE ts1;
 | |
| DROP TABLESPACE ts2;
 | |
| --remove_file $MYSQL_TMP_DIR/.other_dir/ibdata1
 | |
| --remove_file $MYSQL_TMP_DIR/.other_dir/test/t1.ibd
 | |
| --remove_file $MYSQL_TMP_DIR/.other_dir/test/t2.ibd
 | |
| --remove_file $MYSQL_TMP_DIR/.other_dir/ts1.ibd
 | |
| --remove_file $MYSQL_TMP_DIR/.other_dir/ts2.ibd
 | |
| --rmdir $MYSQL_TMP_DIR/.other_dir/test
 | |
| --rmdir $MYSQL_TMP_DIR/.other_dir
 | |
| 
 |