~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
source include/have_ssl_communication.inc;
2
source include/master-slave.inc;
3
4
# create a user for replication that requires ssl encryption
5
connection master;
6
grant replication slave on *.* to replssl@localhost require ssl;
7
create table t1 (t int auto_increment, KEY(t));
8
9
sync_slave_with_master;
10
11
# Set slave to use SSL for connection to master
12
stop slave;
13
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
14
eval change master to
15
  master_user='replssl',
16
  master_password='',
17
  master_ssl=1,
18
  master_ssl_ca ='$MYSQL_TEST_DIR/std_data/cacert.pem',
19
  master_ssl_cert='$MYSQL_TEST_DIR/std_data/client-cert.pem',
20
  master_ssl_key='$MYSQL_TEST_DIR/std_data/client-key.pem';
21
start slave;
22
23
# Switch to master and insert one record, then sync it to slave
24
connection master;
25
insert into t1 values(1);
26
sync_slave_with_master;
27
28
# The record should now be on slave
29
select * from t1;
30
31
# The slave is synced and waiting/reading from master
32
# SHOW SLAVE STATUS will show "Waiting for master to send event"
33
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MASTER_MYPORT MASTER_MYPORT
34
--replace_column 1 # 7 # 8 # 9 # 22 # 23 # 33 # 35 # 36 #
35
query_vertical show slave status;
36
37
# Stop the slave, as reported in bug#21871 it would hang
38
STOP SLAVE;
39
40
select * from t1;
41
42
# Do the same thing a number of times
43
disable_query_log;
44
disable_result_log;
45
# 2007-11-27 mats Bug #32756  	Starting and stopping the slave in a loop can lose rows
46
# After discussions with Engineering, I'm disabling this part of the test to avoid it causing
47
# red trees.
48
disable_parsing;
49
let $i= 100;
50
while ($i)
51
{
52
  start slave;
53
  connection master;
54
  insert into t1 values (NULL);
55
  select * from t1; # Some variance
56
  connection slave;
57
  select * from t1; # Some variance
58
  stop slave;
59
  dec $i;
60
}
61
enable_parsing;
62
START SLAVE;
63
enable_query_log;
64
enable_result_log;
65
connection master;
66
# INSERT one more record to make sure
67
# the sync has something to do
68
insert into t1 values (NULL);
69
let $master_count= `select count(*) from t1`;
70
71
sync_slave_with_master;
72
--source include/wait_for_slave_to_start.inc
73
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MASTER_MYPORT MASTER_MYPORT
74
--replace_column 1 # 7 # 8 # 9 # 22 # 23 # 33 # 35 # 36 #
75
query_vertical show slave status;
76
77
let $slave_count= `select count(*) from t1`;
78
79
if (`select $slave_count != $master_count`)
80
{
81
  echo master and slave differed in number of rows;
82
  echo master: $master_count;
83
  echo slave: $slave_count;
84
85
  connection master;
86
  echo === master ===;
87
  select count(*) t1;
88
  select * from t1;
89
  connection slave;
90
  echo === slave ===;
91
  select count(*) t1;
92
  select * from t1;
93
  query_vertical show slave status;
94
}
95
96
connection master;
97
drop user replssl@localhost;
98
drop table t1;
99
sync_slave_with_master;
100
101
--echo End of 5.0 tests