119 lines
3.7 KiB
Plaintext
119 lines
3.7 KiB
Plaintext
|
|
# Store the time of password_last_changed column from mysql.user table
|
|
# to restore it back later for the different users.
|
|
let $date_to_restore_root=`SELECT password_last_changed from mysql.user where user='root'`;
|
|
let $date_to_restore_sys=`SELECT password_last_changed from mysql.user where user='mysql.sys'`;
|
|
let $date_to_restore_session_user=`SELECT password_last_changed from mysql.user where user='mysql.session'`;
|
|
let $date_to_restore_infoschema_user=`SELECT password_last_changed from mysql.user where user='mysql.infoschema'`;
|
|
|
|
let $LOAD_FILE= $MYSQLTEST_VARDIR/std_data/words.dat;
|
|
CREATE TABLE t1 (word CHAR(20) NOT NULL);
|
|
--replace_result $LOAD_FILE LOAD_FILE
|
|
eval LOAD DATA INFILE '$LOAD_FILE' INTO TABLE t1;
|
|
--replace_result $LOAD_FILE LOAD_FILE
|
|
eval LOAD DATA INFILE '$LOAD_FILE' INTO TABLE t1;
|
|
SELECT * FROM t1 ORDER BY word LIMIT 10;
|
|
|
|
#
|
|
# Test slave with wrong password
|
|
#
|
|
save_master_pos;
|
|
connection slave;
|
|
sync_with_master;
|
|
STOP SLAVE;
|
|
connection master;
|
|
SET PASSWORD FOR root@"localhost" = 'foo';
|
|
connection slave;
|
|
START SLAVE;
|
|
connection master;
|
|
#
|
|
# Give slave time to do at last one failed connect retry
|
|
# This one must be short so that the slave will not stop retrying
|
|
real_sleep 2;
|
|
SET PASSWORD FOR root@"localhost" = '';
|
|
# Give slave time to connect (will retry every second)
|
|
sleep 2;
|
|
|
|
CREATE TABLE t3(n INT);
|
|
INSERT INTO t3 VALUES(1),(2);
|
|
sync_slave_with_master;
|
|
SELECT * FROM t3 ORDER BY n;
|
|
SELECT SUM(LENGTH(word)) FROM t1;
|
|
connection master;
|
|
DROP TABLE t1,t3;
|
|
save_master_pos;
|
|
connection slave;
|
|
sync_with_master;
|
|
|
|
# Test if the slave SQL thread can be more than 16K behind the slave
|
|
# I/O thread (> IO_SIZE)
|
|
|
|
connection master;
|
|
# we'll use table-level locking to delay slave SQL thread
|
|
eval CREATE TABLE t1 (n INT) ENGINE=$engine_type;
|
|
sync_slave_with_master;
|
|
connection master;
|
|
RESET MASTER;
|
|
|
|
connection slave;
|
|
--let $wait_condition=SELECT COUNT(*)=0 from t1
|
|
--source include/wait_condition_or_abort.inc
|
|
--source include/stop_slave.inc
|
|
RESET SLAVE;
|
|
|
|
connection master;
|
|
let $1=5000;
|
|
# Generate 16K of relay log
|
|
disable_query_log;
|
|
while ($1)
|
|
{
|
|
eval INSERT INTO t1 VALUES($1);
|
|
dec $1;
|
|
}
|
|
enable_query_log;
|
|
SELECT COUNT(*) FROM t1;
|
|
|
|
# When running this test with MySQL Cluster replication, the
|
|
# binlog is written asynchronosly via NDB and the master pos
|
|
# should not be saved until all the committed inserts have
|
|
# been written to the binlog of this MySQL Server
|
|
--source include/wait_for_ndb_committed_to_binlog.inc
|
|
|
|
--source include/save_master_pos.inc
|
|
|
|
# Try to cause a large relay log lag on the slave by locking t1
|
|
connection slave;
|
|
RESET MASTER;
|
|
LOCK TABLES t1 READ;
|
|
|
|
--source include/start_slave.inc
|
|
--source include/sync_slave_io.inc
|
|
|
|
UNLOCK TABLES;
|
|
--let $wait_condition= SELECT count(*) = 0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE State = 'Waiting for table metadata lock'
|
|
--source include/wait_condition.inc
|
|
# In valgrind sync a large workload might take long when MTS is enabled
|
|
--let $slave_timeout= 1200
|
|
--source include/sync_slave_sql_with_io.inc
|
|
SELECT COUNT(*) FROM t1;
|
|
|
|
connection master;
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (n INT);
|
|
INSERT INTO t1 VALUES(3456);
|
|
--source include/sync_slave_sql_with_master.inc
|
|
SELECT n FROM t1;
|
|
|
|
connection master;
|
|
DROP TABLE t1;
|
|
|
|
--disable_query_log
|
|
--eval UPDATE mysql.user SET password_last_changed= '$date_to_restore_root'
|
|
--eval UPDATE mysql.user SET password_last_changed= '$date_to_restore_sys' WHERE USER= 'mysql.sys'
|
|
--eval UPDATE mysql.user SET password_last_changed= '$date_to_restore_session_user' WHERE USER= 'mysql.session'
|
|
--eval UPDATE mysql.user SET password_last_changed= '$date_to_restore_infoschema_user' WHERE USER= 'mysql.infoschema'
|
|
--enable_query_log
|
|
--echo # mysql.user table restored to original values.
|
|
|
|
--source include/sync_slave_sql_with_master.inc
|