-- source include/not_embedded.inc --source include/have_csv.inc --disable_ps_protocol set global general_log= OFF; truncate table mysql.general_log; truncate table mysql.slow_log; show global variables where Variable_name = 'log' or Variable_name = 'log_slow_queries' or Variable_name = 'general_log' or Variable_name = 'slow_query_log'; flush logs; set global general_log= ON; create table t1(f1 int); --replace_column 1 TIMESTAMP 2 USER_HOST 3 # select * from mysql.general_log; set global general_log= OFF; drop table t1; --replace_column 1 TIMESTAMP 2 USER_HOST 3 # select * from mysql.general_log; set global general_log= ON; flush logs; show global variables where Variable_name = 'log' or Variable_name = 'log_slow_queries' or Variable_name = 'general_log' or Variable_name = 'slow_query_log'; connect (con1,localhost,root,,); connection con1; set session long_query_time=1; select sleep(2); --replace_column 1 TIMESTAMP 2 USER_HOST 3 QUERY_TIME select * from mysql.slow_log where sql_text NOT LIKE '%slow_log%'; connection default; set global slow_query_log= ON; connection con1; set session long_query_time=1; select sleep(2); --replace_column 1 TIMESTAMP 2 USER_HOST 3 QUERY_TIME select * from mysql.slow_log where sql_text NOT LIKE '%slow_log%'; connection default; show global variables where Variable_name = 'log' or Variable_name = 'log_slow_queries' or Variable_name = 'general_log' or Variable_name = 'slow_query_log'; set global general_log= ON; set global general_log= OFF; set global general_log= OFF; set global slow_query_log= ON; set global slow_query_log= OFF; set global slow_query_log= OFF; set global general_log= ON; truncate table mysql.general_log; create table t1(f1 int); drop table t1; --replace_column 1 TIMESTAMP 2 USER_HOST 3 # select * from mysql.general_log; set global general_log= OFF; truncate table mysql.general_log; --replace_column 1 TIMESTAMP 2 USER_HOST 3 # select * from mysql.general_log; set global general_log= ON; show global variables where Variable_name = 'log' or Variable_name = 'log_slow_queries' or Variable_name = 'general_log' or Variable_name = 'slow_query_log'; --replace_column 2 # show variables like 'general_log_file'; --replace_column 2 # show variables like 'slow_query_log_file'; show variables like 'log_output'; # Can't set general_log_file to a non existing file --error 1231 set global general_log_file='/not exiting path/log.master'; # Can't set general_log_file to a directory --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR --error 1231 eval set global general_log_file='$MYSQLTEST_VARDIR'; # Can't set general_log_file to empty string --error 1231 set global general_log_file=''; --replace_column 2 # show variables like 'general_log_file'; set global general_log= OFF; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR eval set global general_log_file='$MYSQLTEST_VARDIR/tmp/log.master'; set global general_log= ON; create table t1(f1 int); drop table t1; set global general_log= OFF; set global general_log_file=default; set global general_log= ON; create table t1(f1 int); drop table t1; --replace_column 2 # show variables like 'general_log_file'; --replace_column 2 # show variables like 'slow_query_log_file'; set global general_log= default; set global slow_query_log= default; set global general_log_file= default; set global slow_query_log_file= default; show variables like 'general_log'; show variables like 'slow_query_log'; set global general_log=ON; set global log_output=default; show variables like 'log_output'; set global general_log=OFF; set global log_output=FILE; truncate table mysql.general_log; show variables like 'log_output'; set global general_log=ON; create table t1(f1 int); --replace_column 1 TIMESTAMP 2 USER_HOST 3 # select * from mysql.general_log; set global general_log=OFF; set global log_output="FILE,TABLE"; show variables like 'log_output'; set global general_log=ON; drop table t1; --replace_column 1 TIMESTAMP 2 USER_HOST 3 # select * from mysql.general_log; # # Bug#29129 (Resetting general_log while the GLOBAL READ LOCK is set causes # a deadlock) # save state SET @old_general_log_state = @@global.general_log; SET @old_slow_log_state = @@global.slow_query_log; # Test ON->OFF transition under a GLOBAL READ LOCK SET GLOBAL general_log = ON; SET GLOBAL slow_query_log = ON; FLUSH TABLES WITH READ LOCK; SET GLOBAL general_log = OFF; SET GLOBAL slow_query_log = OFF; UNLOCK TABLES; # Test OFF->ON transition under a GLOBAL READ LOCK FLUSH TABLES WITH READ LOCK; SET GLOBAL general_log = ON; SET GLOBAL slow_query_log = ON; UNLOCK TABLES; # Test ON->OFF transition under a GLOBAL READ_ONLY SET GLOBAL READ_ONLY = ON; SET GLOBAL general_log = OFF; SET GLOBAL slow_query_log = OFF; SET GLOBAL READ_ONLY = OFF; # Test OFF->ON transition under a GLOBAL READ_ONLY SET GLOBAL READ_ONLY = ON; SET GLOBAL general_log = ON; SET GLOBAL slow_query_log = ON; SET GLOBAL READ_ONLY = OFF; # Restore state SET GLOBAL general_log = @old_general_log_state; SET GLOBAL slow_query_log = @old_slow_log_state; # # Bug #29131: SHOW VARIABLES reports variable 'log' but SET doesn't recognize it # SET @old_general_log_state = @@global.general_log; SET @old_slow_log_state = @@global.slow_query_log; SHOW VARIABLES LIKE 'general_log'; SHOW VARIABLES LIKE 'log'; SELECT @@general_log, @@log; SET GLOBAL log = 0; SHOW VARIABLES LIKE 'general_log'; SHOW VARIABLES LIKE 'log'; SELECT @@general_log, @@log; SET GLOBAL general_log = 1; SHOW VARIABLES LIKE 'general_log'; SHOW VARIABLES LIKE 'log'; SELECT @@general_log, @@log; SHOW VARIABLES LIKE 'slow_query_log'; SHOW VARIABLES LIKE 'log_slow_queries'; SELECT @@slow_query_log, @@log_slow_queries; SET GLOBAL log_slow_queries = 0; SHOW VARIABLES LIKE 'slow_query_log'; SHOW VARIABLES LIKE 'log_slow_queries'; SELECT @@slow_query_log, @@log_slow_queries; SET GLOBAL slow_query_log = 1; SHOW VARIABLES LIKE 'slow_query_log'; SHOW VARIABLES LIKE 'log_slow_queries'; SELECT @@slow_query_log, @@log_slow_queries; SET GLOBAL general_log = @old_general_log_state; SET GLOBAL slow_query_log = @old_slow_log_state; # # Bug #31604: server crash when setting slow_query_log_file/general_log_file # set @old_general_log_file= @@global.general_log_file; set @old_slow_query_log_file= @@global.slow_query_log_file; --error 1231 set global general_log_file= concat('/not exiting path/log.maste', 'r'); --error 1231 set global general_log_file= NULL; --error 1231 set global slow_query_log_file= concat('/not exiting path/log.maste', 'r'); --error 1231 set global slow_query_log_file= NULL; set global general_log_file= @old_general_log_file; set global slow_query_log_file= @old_slow_query_log_file; ########################################################################### --echo --echo # -- --echo # -- Bug#32748: Inconsistent handling of assignments to --echo # -- general_log_file/slow_query_log_file. --echo # -- --echo SET @general_log_file_saved = @@global.general_log_file; SET @slow_query_log_file_saved = @@global.slow_query_log_file; --echo SET GLOBAL general_log_file = 'bug32748.query.log'; SET GLOBAL slow_query_log_file = 'bug32748.slow.log'; --echo SHOW VARIABLES LIKE '%log_file'; --echo SET GLOBAL general_log_file = @general_log_file_saved; SET GLOBAL slow_query_log_file = @slow_query_log_file_saved; --echo --echo # -- End of Bug#32748. ########################################################################### --echo End of 5.1 tests --enable_ps_protocol # # Cleanup (must be done last to avoid delayed 'Quit' message in general log) # disconnect con1; # Remove the log files that was created in the "default location" # i.e var/run --remove_file $MYSQLTEST_VARDIR/run/mysqld.log --remove_file $MYSQLTEST_VARDIR/run/mysqld-slow.log