summaryrefslogtreecommitdiff
path: root/mysql-test/suite/rpl/include/rpl_row_001.test
blob: 4df2d793244b6db70f0aa4e65ca807f21caef007 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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;