diff options
Diffstat (limited to 'mysql-test/suite/rpl/include/rpl_row_001.test')
-rw-r--r-- | mysql-test/suite/rpl/include/rpl_row_001.test | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/mysql-test/suite/rpl/include/rpl_row_001.test b/mysql-test/suite/rpl/include/rpl_row_001.test new file mode 100644 index 00000000000..4df2d793244 --- /dev/null +++ b/mysql-test/suite/rpl/include/rpl_row_001.test @@ -0,0 +1,96 @@ +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; + +# +# Save password row for root +# + +create temporary table tmp select * from mysql.user where host="localhost" and user="root"; + +# +# Test slave with wrong password +# + +save_master_pos; +connection slave; +sync_with_master; +STOP SLAVE; +connection master; +UPDATE mysql.user SET password=password('foo') WHERE host='localhost' AND user='root'; +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; +UPDATE mysql.user SET password=password('') WHERE host='localhost' AND user='root'; +# 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; +STOP SLAVE; +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; +save_master_pos; + +# Try to cause a large relay log lag on the slave by locking t1 +connection slave; +LOCK TABLES t1 READ; +START SLAVE; +UNLOCK TABLES; +sync_with_master; +SELECT COUNT(*) FROM t1; + +connection master; +DROP TABLE t1; +CREATE TABLE t1 (n INT); +INSERT INTO t1 VALUES(3456); +sync_slave_with_master; +SELECT n FROM t1; + +connection master; +DROP TABLE t1; + +# resttore old passwords +replace into mysql.user select * from tmp; +drop temporary table tmp; + +sync_slave_with_master; |