580 lines
23 KiB
Plaintext
580 lines
23 KiB
Plaintext
|
|
# Save the initial number of concurrent sessions
|
|
--source include/count_sessions.inc
|
|
--source include/have_plugin_auth.inc
|
|
|
|
--echo #
|
|
--echo # WL#8688: Support ability to persist SET GLOBAL settings
|
|
--echo #
|
|
|
|
CALL mtr.add_suppression("Failed to set up SSL because of the following *");
|
|
CALL mtr.add_suppression("One can only use the --user switch.*");
|
|
|
|
--echo # Syntax check for PERSIST option
|
|
# Integer type variables.
|
|
SET PERSIST auto_increment_increment=10;
|
|
SET @@persist.event_scheduler=0;
|
|
SET PERSIST slave_compressed_protocol=1;
|
|
|
|
--echo # Invalid syntax cases.
|
|
--error ER_PARSE_ERROR
|
|
SET GLOBAL PERSIST slave_compressed_protocol=1;
|
|
--error ER_PARSE_ERROR
|
|
SET PERSIST @@global.slave_compressed_protocol=1;
|
|
--error ER_PARSE_ERROR
|
|
SET PERSIST @@session.slave_compressed_protocol=1;
|
|
--error ER_PARSE_ERROR
|
|
SET @@persist.@@slave_compressed_protocol=1;
|
|
--echo # Variables_info table should include info for
|
|
# both session and global variables.
|
|
SET SESSION auto_increment_increment=3;
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE
|
|
FROM performance_schema.variables_info
|
|
WHERE VARIABLE_NAME = 'auto_increment_increment';
|
|
|
|
--echo # Setting multiple variables value as PERSIST.
|
|
# Variable type 'enumeration'
|
|
SET PERSIST innodb_checksum_algorithm=strict_crc32,
|
|
PERSIST innodb_default_row_format=COMPACT,
|
|
PERSIST sql_mode=ANSI_QUOTES,PERSIST innodb_fast_shutdown=0;
|
|
SET PERSIST innodb_flush_log_at_trx_commit=0,join_buffer_size=262144;
|
|
|
|
--echo # SET PERSIST invalid case for multiple variable set.
|
|
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
|
SET PERSIST innodb_thread_concurrency=32, PERSIST innodb_write_io_threads=32,
|
|
PERSIST innodb_read_io_threads=invalid_val;
|
|
|
|
# Set variables to be used in parameters of mysqld.
|
|
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
|
let $MYSQL_BASEDIR= `SELECT @@basedir`;
|
|
let $MYSQL_SOCKET= `SELECT @@socket`;
|
|
let $MYSQL_PIDFILE= `SELECT @@pid_file`;
|
|
let $MYSQL_PORT= `SELECT @@port`;
|
|
let $MYSQL_MESSAGESDIR= `SELECT @@lc_messages_dir`;
|
|
let $MYSQL_HOME=`SELECT @@basedir`;
|
|
|
|
--echo # Restart server with --no-defaults.
|
|
# no config file read (including mysqld-auto.cnf)
|
|
let $MYSQL_SERVER_ID= `SELECT @@server_id`;
|
|
|
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--shutdown_server
|
|
--source include/wait_until_disconnected.inc
|
|
--exec echo "restart:--no-defaults" --basedir=$MYSQL_BASEDIR --datadir=$MYSQLD_DATADIR --socket=$MYSQL_SOCKET --pid-file=$MYSQL_PIDFILE --port=$MYSQL_PORT --lc-messages-dir=$MYSQL_MESSAGESDIR --secure-file-priv="" --server-id=$MYSQL_SERVER_ID --innodb_dedicated_server=OFF --skip-mysqlx > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--enable_reconnect
|
|
--source include/wait_until_connected_again.inc
|
|
|
|
SELECT @@global.innodb_fast_shutdown;
|
|
SELECT @@global.innodb_default_row_format;
|
|
SELECT @@global.sql_mode;
|
|
SELECT @@global.innodb_flush_log_at_trx_commit;
|
|
SELECT @@global.join_buffer_size;
|
|
SELECT @@global.innodb_checksum_algorithm;
|
|
--echo # Return 0 rows
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE
|
|
FROM performance_schema.variables_info
|
|
WHERE VARIABLE_SOURCE = 'PERSISTED'
|
|
ORDER BY VARIABLE_NAME;
|
|
|
|
--echo # Restart server with --defaults-file.
|
|
# mysqld-auto.cnf file variables should apply in the last.
|
|
# Creating sperate mysql configuration file.
|
|
--write_file $MYSQLTEST_VARDIR/tmp/my.cnf
|
|
[mysqld]
|
|
innodb_fast_shutdown=1
|
|
innodb_default_row_format=REDUNDANT
|
|
sql_mode=REAL_AS_FLOAT
|
|
innodb_flush_log_at_trx_commit=2
|
|
max_digest_length=2024
|
|
# Adding session variable
|
|
disconnect_on_expired_password=OFF
|
|
EOF
|
|
|
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--shutdown_server
|
|
--source include/wait_until_disconnected.inc
|
|
--exec echo "restart:--defaults-file=$MYSQLTEST_VARDIR/tmp/my.cnf" --basedir=$MYSQL_BASEDIR --datadir=$MYSQLD_DATADIR --socket=$MYSQL_SOCKET --pid-file=$MYSQL_PIDFILE --port=$MYSQL_PORT --lc-messages-dir=$MYSQL_MESSAGESDIR --server-id=$MYSQL_SERVER_ID --sort_buffer_size=462144 --secure-file-priv="" --innodb_dedicated_server=OFF --skip-mysqlx > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
|
|
|
|
# Creating sperate extra mysql configuration file.
|
|
#--write_file $MYSQLTEST_VARDIR/tmp/my_user_extra.cnf
|
|
#[mysqld]
|
|
#flush_time=1
|
|
#innodb_tmpdir=$MYSQLTEST_VARDIR/tmp
|
|
#max_allowed_packet=16M
|
|
#join_buffer_size=262144
|
|
#EOF
|
|
|
|
# MTR Bug#24337411
|
|
# There might be global cnf files which contain deprecated variables on some
|
|
# machines and when a defaults-extra-file is passed, global cnf file options
|
|
# are added along with the options from the defaults-extra-file.
|
|
# This causes the server to throw an "unknown variable" error, so this testcase
|
|
# will be commented out.
|
|
# Restart server with defaults-file and defaults-extra-file.
|
|
#--exec echo "restart:--defaults-extra-file=$MYSQLTEST_VARDIR/tmp/my_user_extra.cnf" --basedir=$MYSQL_BASEDIR --datadir=$MYSQLD_DATADIR --socket=$MYSQL_SOCKET --pid-file=$MYSQL_PIDFILE --port=$MYSQL_PORT --lc-messages-dir=$MYSQL_MESSAGESDIR --secure-file-priv="" --skip-mysqlx > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
|
|
#--remove_file $MYSQLTEST_VARDIR/tmp/my_user_extra.cnf
|
|
--enable_reconnect
|
|
--source include/wait_until_connected_again.inc
|
|
|
|
--echo # Check values after restart.
|
|
# Global and dynamic Variables values should be taken from mysql-auto.cnf file.
|
|
SELECT @@global.innodb_fast_shutdown;
|
|
SELECT @@global.innodb_default_row_format;
|
|
SELECT @@global.sql_mode;
|
|
SELECT @@global.innodb_checksum_algorithm;
|
|
SELECT @@global.innodb_flush_log_at_trx_commit;
|
|
SELECT @@global.max_digest_length;
|
|
SELECT @@global.join_buffer_size;
|
|
SELECT @@global.sort_buffer_size;
|
|
|
|
SELECT VARIABLE_NAME,VARIABLE_SOURCE,MIN_VALUE,MAX_VALUE
|
|
FROM performance_schema.variables_info
|
|
WHERE VARIABLE_NAME IN ('innodb_fast_shutdown','sql_mode',
|
|
'innodb_default_row_format','max_digest_length',
|
|
'innodb_flush_log_at_trx_commit',
|
|
'disconnect_on_expired_password',
|
|
'innodb_checksum_algorithm')
|
|
ORDER BY VARIABLE_NAME;
|
|
|
|
# Get rid of previous tests binlog
|
|
--disable_query_log
|
|
reset master;
|
|
--enable_query_log
|
|
|
|
SET PERSIST max_connections=500;
|
|
SET PERSIST autocommit=OFF;
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE
|
|
FROM performance_schema.variables_info
|
|
WHERE VARIABLE_NAME = 'max_connections';
|
|
SET GLOBAL max_connections=DEFAULT;
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE
|
|
FROM performance_schema.variables_info
|
|
WHERE VARIABLE_NAME IN ('max_connections','autocommit');
|
|
CREATE TABLE t1 (col1 INT);
|
|
DROP TABLE t1;
|
|
SET PERSIST log_bin_trust_function_creators=1;
|
|
|
|
--echo # SET PERSIST statement should not be bin logged.
|
|
--echo # Show binlog events
|
|
--source include/show_binlog_events.inc
|
|
|
|
# String type variables.
|
|
SET PERSIST block_encryption_mode= 'aes-128-ecb';
|
|
SET PERSIST ft_boolean_syntax= '+ -><()~*:""&|',
|
|
PERSIST log_error_services=DEFAULT;
|
|
# Numeric type variables.
|
|
SET PERSIST innodb_max_dirty_pages_pct=80.99;
|
|
|
|
# Slow_query_log variable with persist.
|
|
--let $slow_query_log_on=$MYSQLTEST_VARDIR/log/slow_query_on.log;
|
|
SET PERSIST slow_query_log=ON;
|
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
|
eval SET PERSIST slow_query_log_file='$slow_query_log_on';
|
|
|
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--shutdown_server
|
|
--source include/wait_until_disconnected.inc
|
|
--echo # Restart server cmd line and mysql-auto.cnf testing.
|
|
--exec echo "restart" --max_connections=default --innodb_fast_shutdown=1 --innodb_flush_log_at_trx_commit=2 innodb_flush_sync=DEFAULT --skip-mysqlx > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--enable_reconnect
|
|
--source include/wait_until_connected_again.inc
|
|
|
|
--echo # Check values after restart.
|
|
# Slow_query_log_file cleanup.
|
|
SET PERSIST slow_query_log_file=DEFAULT;
|
|
RESET PERSIST slow_query_log_file;
|
|
SET PERSIST slow_query_log=DEFAULT;
|
|
# Global and dynamic Variables values should be taken from mysql-auto.cnf file.
|
|
|
|
# String type variables.
|
|
SELECT @@global.block_encryption_mode;
|
|
SELECT @@global.ft_boolean_syntax;
|
|
SELECT @@global.log_error_services;
|
|
#Numeric type varaibles.
|
|
SELECT @@global.innodb_max_dirty_pages_pct;
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE, MIN_VALUE, MAX_VALUE
|
|
FROM performance_schema.variables_info
|
|
WHERE VARIABLE_NAME IN ('block_encryption_mode',
|
|
'ft_boolean_syntax','log_error_services','innodb_max_dirty_pages_pct')
|
|
ORDER BY VARIABLE_NAME;
|
|
|
|
SELECT @@global.innodb_fast_shutdown;
|
|
SELECT @@global.innodb_default_row_format;
|
|
SELECT @@global.sql_mode;
|
|
SELECT @@global.innodb_checksum_algorithm;
|
|
SELECT @@global.max_digest_length;
|
|
SELECT @@global.max_connections;
|
|
SELECT @@global.innodb_flush_log_at_trx_commit;
|
|
SELECT @@global.join_buffer_size;
|
|
SELECT @@global.innodb_flush_sync;
|
|
SELECT @@global.autocommit;
|
|
SELECT @@session.autocommit;
|
|
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE, MIN_VALUE, MAX_VALUE
|
|
FROM performance_schema.variables_info
|
|
WHERE VARIABLE_NAME IN ('innodb_fast_shutdown','sql_mode',
|
|
'innodb_default_row_format','max_digest_length','max_connections',
|
|
'innodb_flush_log_at_trx_commit','innodb_flush_sync',
|
|
'autocommit','innodb_checksum_algorithm')
|
|
ORDER BY VARIABLE_NAME;
|
|
|
|
#echo should return 0 rows now
|
|
SELECT VARIABLE_NAME,VARIABLE_SOURCE
|
|
FROM performance_schema.variables_info
|
|
WHERE VARIABLE_SOURCE = 'LOGIN';
|
|
|
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--shutdown_server
|
|
--source include/wait_until_disconnected.inc
|
|
--exec echo "restart: --performance_schema=OFF --log-bin" --server-id=$MYSQL_SERVER_ID --skip-mysqlx > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--enable_reconnect
|
|
--source include/wait_until_connected_again.inc
|
|
|
|
# Make sure we start with a clean slate. log_tables.test says this is OK.
|
|
TRUNCATE TABLE mysql.general_log;
|
|
|
|
--echo --------------- general log ---------------------------------------
|
|
|
|
SET @old_log_output= @@global.log_output;
|
|
SET @old_general_log= @@global.general_log;
|
|
SET @old_general_log_file= @@global.general_log_file;
|
|
|
|
let $general_file_on = $MYSQLTEST_VARDIR/log/persist_general.log;
|
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
|
eval SET GLOBAL general_log_file = '$general_file_on';
|
|
SET PERSIST log_output = 'FILE,TABLE';
|
|
SET PERSIST general_log= 'ON';
|
|
|
|
# Get rid of previous tests binlog
|
|
--disable_query_log
|
|
reset master;
|
|
--enable_query_log
|
|
|
|
SET PERSIST innodb_io_capacity=225;
|
|
SET PERSIST innodb_flush_sync=DEFAULT;
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE
|
|
FROM performance_schema.variables_info
|
|
WHERE VARIABLE_NAME IN('innodb_io_capacity','innodb_flush_sync');
|
|
|
|
--echo # SET PERSIST statement should not be bin logged.
|
|
--echo # Show binlog events
|
|
--source include/show_binlog_events.inc
|
|
|
|
--echo Show what is logged:
|
|
--echo ------ rewrite ------
|
|
SELECT argument FROM mysql.general_log WHERE argument LIKE 'SET PERSIST %';
|
|
--echo ------ done ------
|
|
|
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
|
eval SET PERSIST general_log_file = '$general_file_on';
|
|
RESET PERSIST general_log_file;
|
|
SET PERSIST log_output=DEFAULT ,PERSIST general_log=DEFAULT;
|
|
|
|
--remove_file $general_file_on
|
|
SET GLOBAL general_log_file= @old_general_log_file;
|
|
SET GLOBAL general_log= @old_general_log;
|
|
SET GLOBAL log_output= @old_log_output;
|
|
|
|
# UNSET PERSIST variables by setting variables values to DEFAULT.
|
|
SET PERSIST block_encryption_mode=DEFAULT, PERSIST ft_boolean_syntax=DEFAULT,
|
|
PERSIST innodb_checksum_algorithm=DEFAULT,
|
|
PERSIST log_error_services=DEFAULT,
|
|
PERSIST innodb_max_dirty_pages_pct=DEFAULT;
|
|
|
|
SET PERSIST innodb_fast_shutdown=DEFAULT,PERSIST innodb_default_row_format=DEFAULT,
|
|
PERSIST sql_mode=DEFAULT,PERSIST innodb_flush_log_at_trx_commit=DEFAULT,
|
|
PERSIST max_connections=default, PERSIST join_buffer_size=default,
|
|
PERSIST innodb_flush_sync=DEFAULT,PERSIST innodb_io_capacity=DEFAULT,
|
|
PERSIST log_bin_trust_function_creators=DEFAULT, PERSIST autocommit=DEFAULT;
|
|
|
|
--echo WL#9720 - SET PERSIST to capture user, host and timestamp
|
|
# Verify new columns SET_TIME, SET_USER and SET_HOST added in
|
|
# performance_schema.variables_info
|
|
show create table performance_schema.variables_info;
|
|
|
|
# performance_schema.variables_info.SET_USER column represents
|
|
# which user has set the variable.
|
|
# performance_schema.variables_info.SET_HOST column represents
|
|
# host on which the variable is set.
|
|
# Successful execution of SET statement will update these columns
|
|
# (SET_USER,SET_HOST,SET_TIME) accordingly.
|
|
--connection default
|
|
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'pass1';
|
|
GRANT ALL ON *.* TO 'user1'@'localhost';
|
|
|
|
--connect (con1,localhost,user1,pass1,)
|
|
|
|
--connection con1
|
|
SET @@global.max_connections = 100;
|
|
SET @@persist.event_scheduler=DEFAULT;
|
|
SET PERSIST auto_increment_increment=10;
|
|
SET PERSIST innodb_checksum_algorithm=strict_crc32;
|
|
|
|
--connection default
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE, SET_USER, SET_HOST
|
|
FROM performance_schema.variables_info
|
|
WHERE VARIABLE_NAME IN ('max_connections','event_scheduler',
|
|
'auto_increment_increment','innodb_checksum_algorithm');
|
|
|
|
# RESET PERSIST statement should have no effect on these new columns.
|
|
|
|
--connection con1
|
|
RESET PERSIST auto_increment_increment;
|
|
RESET PERSIST innodb_checksum_algorithm;
|
|
|
|
--connection default
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE, SET_USER, SET_HOST
|
|
FROM performance_schema.variables_info
|
|
WHERE VARIABLE_NAME IN ('auto_increment_increment',
|
|
'innodb_checksum_algorithm');
|
|
|
|
# Verify SET_USER, SET_HOST column for proxy_user:
|
|
select @@global.max_connections into @saved_max_connections;
|
|
select @@global.autocommit into @saved_autocommit;
|
|
|
|
# Create proxied user:
|
|
CREATE USER 'internal_proxied'@'%' IDENTIFIED BY 'proxy_password';
|
|
|
|
# Create proxy user 1:
|
|
CREATE USER 'external_u1'@'%' IDENTIFIED WITH test_plugin_server AS 'internal_proxied';
|
|
|
|
# Create proxy user 2:
|
|
CREATE USER 'external_u2'@'%' IDENTIFIED WITH test_plugin_server AS 'internal_proxied';
|
|
|
|
GRANT PROXY ON 'internal_proxied'@'%' TO 'external_u1'@'%','external_u2'@'%';
|
|
GRANT ALL ON *.* TO 'internal_proxied'@'%';
|
|
|
|
--connect (con2,localhost,external_u1,internal_proxied,)
|
|
--connect (con3,localhost,external_u2,internal_proxied,)
|
|
|
|
--connection con2
|
|
SET @@global.max_connections=50;
|
|
|
|
--connection con3
|
|
SET @@global.autocommit=1;
|
|
|
|
--connection default
|
|
--replace_column 4 #
|
|
SELECT VARIABLE_NAME, SET_USER, SET_HOST, SET_TIME from
|
|
performance_schema.variables_info where variable_name='max_connections' or
|
|
variable_name='autocommit';
|
|
|
|
--echo # Cleanup
|
|
--remove_file $MYSQLD_DATADIR/mysqld-auto.cnf
|
|
--remove_file $MYSQLTEST_VARDIR/tmp/my.cnf
|
|
drop USER 'user1'@'localhost';
|
|
drop USER 'internal_proxied'@'%';
|
|
drop USER 'external_u1'@'%';
|
|
drop USER 'external_u2'@'%';
|
|
SET GLOBAL max_connections = @saved_max_connections;
|
|
SET GLOBAL autocommit = @saved_autocommit;
|
|
--disconnect con1
|
|
--disconnect con2
|
|
--disconnect con3
|
|
|
|
--echo #
|
|
--echo # Bug#25563891: OPTION SET BY !INCLUDE OR !INCLUDEDIR SHOWED AS 'COMPILED'
|
|
--echo # IN P_S.VARIABLES_INFO
|
|
--echo #
|
|
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE
|
|
FROM performance_schema.variables_info WHERE VARIABLE_NAME IN
|
|
('sort_buffer_size', 'max_connections', 'max_digest_length',
|
|
'innodb_fast_shutdown', 'innodb_default_row_format', 'innodb_flush_log_at_trx_commit');
|
|
|
|
SELECT @@sort_buffer_size, @@max_connections, @@max_digest_length;
|
|
SELECT @@innodb_fast_shutdown, @@innodb_default_row_format, @@innodb_flush_log_at_trx_commit;
|
|
|
|
--exec echo "[mysqld]" > $MYSQLTEST_VARDIR/tmp/my_tmp.cnf
|
|
--exec echo "!include $MYSQLTEST_VARDIR/tmp/sort_buff.cnf" >> $MYSQLTEST_VARDIR/tmp/my_tmp.cnf
|
|
--exec echo "!includedir $MYSQLD_DATADIR" >> $MYSQLTEST_VARDIR/tmp/my_tmp.cnf
|
|
--exec echo "max_connections=51" >> $MYSQLTEST_VARDIR/tmp/my_tmp.cnf
|
|
--exec echo "max_digest_length=2024" >> $MYSQLTEST_VARDIR/tmp/my_tmp.cnf
|
|
|
|
--write_file $MYSQLTEST_VARDIR/tmp/sort_buff.cnf
|
|
[mysqld]
|
|
sort_buffer_size=314156
|
|
EOF
|
|
|
|
--write_file $MYSQLD_DATADIR/innodb.cnf
|
|
[mysqld]
|
|
innodb_fast_shutdown=1
|
|
innodb_default_row_format=REDUNDANT
|
|
innodb_flush_log_at_trx_commit=2
|
|
EOF
|
|
|
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--shutdown_server
|
|
--source include/wait_until_disconnected.inc
|
|
--exec echo "restart:--defaults-file=$MYSQLTEST_VARDIR/tmp/my_tmp.cnf" --basedir=$MYSQL_BASEDIR --datadir=$MYSQLD_DATADIR --socket=$MYSQL_SOCKET --pid-file=$MYSQL_PIDFILE --port=$MYSQL_PORT --lc-messages-dir=$MYSQL_MESSAGESDIR --secure-file-priv="" --server-id=$MYSQL_SERVER_ID --innodb_dedicated_server=OFF --skip-mysqlx > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--enable_reconnect
|
|
--source include/wait_until_connected_again.inc
|
|
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE
|
|
FROM performance_schema.variables_info WHERE VARIABLE_NAME IN
|
|
('sort_buffer_size', 'max_connections', 'max_digest_length',
|
|
'innodb_fast_shutdown', 'innodb_default_row_format', 'innodb_flush_log_at_trx_commit');
|
|
|
|
SELECT @@sort_buffer_size, @@max_connections, @@max_digest_length;
|
|
SELECT @@innodb_fast_shutdown, @@innodb_default_row_format, @@innodb_flush_log_at_trx_commit;
|
|
|
|
--echo # Cleanup
|
|
--remove_file $MYSQLTEST_VARDIR/tmp/my_tmp.cnf
|
|
--remove_file $MYSQLTEST_VARDIR/tmp/sort_buff.cnf
|
|
--remove_file $MYSQLD_DATADIR/innodb.cnf
|
|
|
|
--echo # Restart server with all defaults
|
|
--source include/restart_mysqld.inc
|
|
|
|
--echo #
|
|
--echo # BUG#26085774: SERVER CRASHES WHEN STARTED USING CORRUPTED MYSQLD-AUTO.CNF
|
|
--echo #
|
|
|
|
# Set valiables to be used in parameters of mysqld.
|
|
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
|
let $MYSQL_BASEDIR= `SELECT @@basedir`;
|
|
let $MYSQL_SOCKET= `SELECT @@socket`;
|
|
let $MYSQL_PIDFILE= `SELECT @@pid_file`;
|
|
let $MYSQL_PORT= `SELECT @@port`;
|
|
let $MYSQL_MESSAGESDIR= `SELECT @@lc_messages_dir`;
|
|
|
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
--shutdown_server
|
|
--source include/wait_until_disconnected.inc
|
|
|
|
--write_file $MYSQLTEST_VARDIR/tmp/my.cnf
|
|
[mysqld]
|
|
innodb_fast_shutdown=1
|
|
EOF
|
|
|
|
--echo # this is the wrong format with event_scheduler value not being string
|
|
--write_file $MYSQLD_DATADIR/mysqld-auto.cnf
|
|
{ "mysql_server": { "event_scheduler": OFF , "mysql_server_static_options": {"binlog_gtid_simple_recovery": "0" , "ft_query_expansion_limit": "200" } } }
|
|
EOF
|
|
|
|
--echo # server should fail to start
|
|
--echo # on windows even though server fails to start return code is 0, thus expecting error to be 0 or 1
|
|
--error 0,1
|
|
--exec $MYSQLD --defaults-file=$MYSQLTEST_VARDIR/tmp/my.cnf --basedir=$MYSQL_BASEDIR --datadir=$MYSQLD_DATADIR --socket=$MYSQL_SOCKET --pid-file=$MYSQL_PIDFILE --port=$MYSQL_PORT --lc-messages-dir=$MYSQL_MESSAGESDIR --daemonize --secure-file-priv=""
|
|
|
|
--remove_file $MYSQLD_DATADIR/mysqld-auto.cnf
|
|
--echo # this is the wrong format with binlog_gtid_simple_recovery value not being string
|
|
--write_file $MYSQLD_DATADIR/mysqld-auto.cnf
|
|
{ "mysql_server": { "event_scheduler": "OFF" , "mysql_server_static_options": {"binlog_gtid_simple_recovery": 0 , "ft_query_expansion_limit": "200" } } }
|
|
EOF
|
|
|
|
--echo # server should fail to start
|
|
--error 0,1
|
|
--exec $MYSQLD --defaults-file=$MYSQLTEST_VARDIR/tmp/my.cnf --basedir=$MYSQL_BASEDIR --datadir=$MYSQLD_DATADIR --socket=$MYSQL_SOCKET --pid-file=$MYSQL_PIDFILE --port=$MYSQL_PORT --lc-messages-dir=$MYSQL_MESSAGESDIR --daemonize --secure-file-priv=""
|
|
|
|
--remove_file $MYSQLD_DATADIR/mysqld-auto.cnf
|
|
--echo # this is the wrong format with no ',' between key/value pair
|
|
--write_file $MYSQLD_DATADIR/mysqld-auto.cnf
|
|
{ "mysql_server": { "event_scheduler": OFF , "mysql_server_static_options": {"binlog_gtid_simple_recovery": "0" "ft_query_expansion_limit": "200" } } }
|
|
EOF
|
|
|
|
--echo # server should fail to start
|
|
--error 0,1
|
|
--exec $MYSQLD --defaults-file=$MYSQLTEST_VARDIR/tmp/my.cnf --basedir=$MYSQL_BASEDIR --datadir=$MYSQLD_DATADIR --socket=$MYSQL_SOCKET --pid-file=$MYSQL_PIDFILE --port=$MYSQL_PORT --lc-messages-dir=$MYSQL_MESSAGESDIR --daemonize --secure-file-priv=""
|
|
|
|
--remove_file $MYSQLD_DATADIR/mysqld-auto.cnf
|
|
--echo # this is the wrong format with wrong static variables group name
|
|
--write_file $MYSQLD_DATADIR/mysqld-auto.cnf
|
|
{ "mysql_server": { "event_scheduler": OFF , "mysql_xxxx_static_options": {"binlog_gtid_simple_recovery": "0" , "ft_query_expansion_limit": "200" } } }
|
|
EOF
|
|
|
|
--echo # server should fail to start
|
|
--error 0,1
|
|
--exec $MYSQLD --defaults-file=$MYSQLTEST_VARDIR/tmp/my.cnf --basedir=$MYSQL_BASEDIR --datadir=$MYSQLD_DATADIR --socket=$MYSQL_SOCKET --pid-file=$MYSQL_PIDFILE --port=$MYSQL_PORT --lc-messages-dir=$MYSQL_MESSAGESDIR --daemonize --secure-file-priv=""
|
|
|
|
--remove_file $MYSQLD_DATADIR/mysqld-auto.cnf
|
|
--echo # this is the wrong format with group name
|
|
--write_file $MYSQLD_DATADIR/mysqld-auto.cnf
|
|
{ "xxxx_server": { "event_scheduler": OFF , "mysql_server_static_options": {"binlog_gtid_simple_recovery": "0" , "ft_query_expansion_limit": "200" } } }
|
|
EOF
|
|
|
|
--echo # server should fail to start
|
|
--error 0,1
|
|
--exec $MYSQLD --defaults-file=$MYSQLTEST_VARDIR/tmp/my.cnf --basedir=$MYSQL_BASEDIR --datadir=$MYSQLD_DATADIR --socket=$MYSQL_SOCKET --pid-file=$MYSQL_PIDFILE --port=$MYSQL_PORT --lc-messages-dir=$MYSQL_MESSAGESDIR --daemonize --secure-file-priv=""
|
|
|
|
--remove_file $MYSQLD_DATADIR/mysqld-auto.cnf
|
|
--remove_file $MYSQLTEST_VARDIR/tmp/my.cnf
|
|
|
|
--echo # start server with all defaults
|
|
--source include/start_mysqld.inc
|
|
|
|
--echo #
|
|
--echo # Bug#26100122: SERVER CRASHES WHEN SET PERSIST CALLS WITH A LONG STATEMENT
|
|
--echo #
|
|
|
|
set @a=repeat('A',2000);
|
|
--eval SET PERSIST init_connect=@a;
|
|
set @b=repeat('A',24000);
|
|
--eval SET PERSIST init_connect=@b;
|
|
|
|
--echo # Cleanup
|
|
SET GLOBAL init_connect=default;
|
|
RESET PERSIST;
|
|
--remove_file $MYSQLD_DATADIR/mysqld-auto.cnf
|
|
|
|
--echo #
|
|
--echo # Bug#25677422: SET_TIME IN VARIABLES_INFO REFLECTS RESTART TIME FOR
|
|
--echo # PERSISTED VARIABLES
|
|
--echo #
|
|
|
|
RESET PERSIST;
|
|
CREATE USER bug25677422;
|
|
GRANT ALL ON *.* TO bug25677422;
|
|
--connect(con1, localhost, bug25677422)
|
|
SET PERSIST sort_buffer_size=256000;
|
|
SET PERSIST max_heap_table_size=999424, slave_net_timeout=124;
|
|
SET PERSIST_ONLY innodb_read_io_threads= 16;
|
|
connection default;
|
|
SET PERSIST long_query_time= 8.3452;
|
|
SET PERSIST_ONLY innodb_log_file_size= 4194304, ft_query_expansion_limit= 80;
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE, SET_USER
|
|
FROM performance_schema.variables_info WHERE VARIABLE_NAME IN
|
|
('sort_buffer_size', 'max_heap_table_size', 'slave_net_timeout',
|
|
'long_query_time', 'innodb_read_io_threads', 'innodb_log_file_size',
|
|
'ft_query_expansion_limit');
|
|
connection con1;
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE, SET_USER
|
|
FROM performance_schema.variables_info WHERE VARIABLE_NAME IN
|
|
('sort_buffer_size', 'max_heap_table_size', 'slave_net_timeout',
|
|
'long_query_time', 'innodb_read_io_threads', 'innodb_log_file_size',
|
|
'ft_query_expansion_limit');
|
|
|
|
connection default;
|
|
disconnect con1;
|
|
--echo # Restart server
|
|
--source include/restart_mysqld.inc
|
|
|
|
SELECT VARIABLE_NAME FROM performance_schema.variables_info WHERE
|
|
VARIABLE_SOURCE = 'PERSISTED';
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE, SET_USER
|
|
FROM performance_schema.variables_info WHERE VARIABLE_NAME IN
|
|
('sort_buffer_size', 'max_heap_table_size', 'slave_net_timeout',
|
|
'long_query_time', 'innodb_read_io_threads', 'innodb_log_file_size',
|
|
'ft_query_expansion_limit');
|
|
--connect(con1, localhost, bug25677422)
|
|
connection con1;
|
|
SELECT VARIABLE_NAME, VARIABLE_SOURCE, SET_USER
|
|
FROM performance_schema.variables_info WHERE VARIABLE_NAME IN
|
|
('sort_buffer_size', 'max_heap_table_size', 'slave_net_timeout',
|
|
'long_query_time', 'innodb_read_io_threads', 'innodb_log_file_size',
|
|
'ft_query_expansion_limit');
|
|
|
|
connection default;
|
|
disconnect con1;
|
|
DROP USER bug25677422;
|
|
RESET PERSIST;
|
|
SET GLOBAL sort_buffer_size=DEFAULT, max_heap_table_size=DEFAULT,
|
|
slave_net_timeout=DEFAULT, long_query_time=DEFAULT;
|
|
--remove_file $MYSQLD_DATADIR/mysqld-auto.cnf
|
|
--echo # Restart server with defaults
|
|
--source include/restart_mysqld.inc
|
|
|
|
SELECT 'END OF TEST';
|