~linuxjedi/drizzle/trunk-bug-667053

« back to all changes in this revision

Viewing changes to mysql-test/suite/rpl/t/rpl_read_only.test

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Test case for BUG #11733
 
2
-- source include/master-slave.inc
 
3
-- source include/have_innodb.inc
 
4
 
 
5
# Create a test and replicate it to slave
 
6
connection master;
 
7
create user test;
 
8
sync_slave_with_master;
 
9
 
 
10
# Setting the master readonly :
 
11
# - the variable @@readonly is not replicated on the slave
 
12
 
 
13
connect (master2,127.0.0.1,test,,test,$MASTER_MYPORT,);
 
14
connect (slave2,127.0.0.1,test,,test,$SLAVE_MYPORT,);
 
15
 
 
16
connection master1;
 
17
 
 
18
create table t1(a int) engine=InnoDB;
 
19
create table t2(a int) engine=MyISAM;
 
20
insert into t1 values(1001);
 
21
insert into t2 values(2001);
 
22
 
 
23
connection master;
 
24
set global read_only=1;
 
25
 
 
26
connection master1;
 
27
select @@read_only;
 
28
select * from t1;
 
29
select * from t2;
 
30
 
 
31
sync_slave_with_master;
 
32
select @@read_only;
 
33
select * from t1;
 
34
select * from t2;
 
35
 
 
36
# - replication of transactions
 
37
connection master;
 
38
set global read_only=0;
 
39
 
 
40
connection master1;
 
41
BEGIN;
 
42
insert into t1 values(1002);
 
43
insert into t2 values(2002);
 
44
 
 
45
connection master2;
 
46
BEGIN;
 
47
insert into t1 values(1003);
 
48
insert into t2 values(2003);
 
49
 
 
50
connection master;
 
51
set global read_only=1;
 
52
 
 
53
connection master1;
 
54
## works even with read_only=1, because master1 is root
 
55
COMMIT;
 
56
 
 
57
connection master2;
 
58
--error ER_OPTION_PREVENTS_STATEMENT
 
59
COMMIT;
 
60
 
 
61
connection master;
 
62
set global read_only=0;
 
63
 
 
64
connection master1;
 
65
insert into t1 values(1004);
 
66
insert into t2 values(2004);
 
67
 
 
68
select * from t1;
 
69
select * from t2;
 
70
 
 
71
sync_slave_with_master;
 
72
select * from t1;
 
73
select * from t2;
 
74
 
 
75
# Setting the slave readonly : replication will pass
 
76
 
77
connection slave1;
 
78
set global read_only=1;
 
79
 
 
80
connection slave;
 
81
select @@read_only;
 
82
# Make sure the replicated table is also transactional
 
83
show create table t1;
 
84
# Make sure the replicated table is not transactional
 
85
show create table t2;
 
86
 
 
87
connection master;
 
88
insert into t1 values(1005);
 
89
insert into t2 values(2005);
 
90
select * from t1;
 
91
select * from t2;
 
92
 
 
93
sync_slave_with_master;
 
94
connection slave;
 
95
select * from t1;
 
96
select * from t2;
 
97
 
 
98
# Non root user can not write on the slave
 
99
connection slave2;
 
100
--error ER_OPTION_PREVENTS_STATEMENT
 
101
insert into t1 values(1006);
 
102
--error ER_OPTION_PREVENTS_STATEMENT
 
103
insert into t2 values(2006);
 
104
 
 
105
## Cleanup
 
106
connection master;
 
107
drop user test;
 
108
drop table t1;
 
109
drop table t2;
 
110
sync_slave_with_master;
 
111
set global read_only=0;
 
112
 
 
113