mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 14:54:20 +01:00
73345d0fbd
general_log_file/slow_query_log_file. The problem was that log file path was rejected if directory path was empty. The fix is to reject log file path only if it is entirely empty.
273 lines
7.5 KiB
Text
273 lines
7.5 KiB
Text
-- 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/master.log
|