2
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
5
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
10
SET SESSION BINLOG_FORMAT=ROW;
11
CREATE TABLE t1 (a INT, b INT);
12
CREATE TABLE t2 (c INT, d INT);
13
INSERT INTO t1 VALUES (1,1),(2,4),(3,9);
14
INSERT INTO t2 VALUES (1,1),(2,8),(3,27);
15
UPDATE t1,t2 SET b = d, d = b * 2 WHERE a = c;
16
show binlog events from <binlog_start>;
17
Log_name Pos Event_type Server_id End_log_pos Info
18
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT, b INT)
19
master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (c INT, d INT)
20
master-bin.000001 # Query # # use `test`; BEGIN
21
master-bin.000001 # Table_map # # table_id: # (test.t1)
22
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
23
master-bin.000001 # Query # # use `test`; COMMIT
24
master-bin.000001 # Query # # use `test`; BEGIN
25
master-bin.000001 # Table_map # # table_id: # (test.t2)
26
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
27
master-bin.000001 # Query # # use `test`; COMMIT
28
master-bin.000001 # Query # # use `test`; BEGIN
29
master-bin.000001 # Table_map # # table_id: # (test.t1)
30
master-bin.000001 # Table_map # # table_id: # (test.t2)
31
master-bin.000001 # Update_rows # # table_id: #
32
master-bin.000001 # Update_rows # # table_id: # flags: STMT_END_F
33
master-bin.000001 # Query # # use `test`; COMMIT
45
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=762;
50
Master_Port MASTER_PORT
52
Master_Log_File master-bin.000001
53
Read_Master_Log_Pos 1134
56
Relay_Master_Log_File master-bin.000001
62
Replicate_Ignore_Table
63
Replicate_Wild_Do_Table
64
Replicate_Wild_Ignore_Table
68
Exec_Master_Log_Pos 763
70
Until_Condition Master
71
Until_Log_File master-bin.000001
79
Seconds_Behind_Master #
80
Master_SSL_Verify_Server_Cert No
85
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
100
SET SESSION BINLOG_FORMAT=STATEMENT;
102
INSERT INTO t1 VALUES(@foo, 2*@foo);
103
show binlog events from <binlog_start>;
104
Log_name Pos Event_type Server_id End_log_pos Info
105
master-bin.000001 # User var # # @`foo`=12
106
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES(@foo, 2*@foo)
107
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=106;
108
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
112
Master_Host 127.0.0.1
114
Master_Port MASTER_PORT
116
Master_Log_File master-bin.000001
117
Read_Master_Log_Pos 249
120
Relay_Master_Log_File master-bin.000001
122
Slave_SQL_Running Yes
126
Replicate_Ignore_Table
127
Replicate_Wild_Do_Table
128
Replicate_Wild_Ignore_Table
132
Exec_Master_Log_Pos 249
137
Master_SSL_Allowed No
143
Seconds_Behind_Master #
144
Master_SSL_Verify_Server_Cert No
151
SET SESSION BINLOG_FORMAT=ROW;
153
CREATE TABLE t1 (a INT, b VARCHAR(20)) ENGINE=myisam;
154
CREATE TABLE t2 (a INT, b VARCHAR(20)) ENGINE=myisam;
155
CREATE TABLE t3 (a INT, b VARCHAR(20)) ENGINE=myisam;
156
INSERT INTO t1 VALUES (1,'master/slave');
157
INSERT INTO t2 VALUES (1,'master/slave');
158
INSERT INTO t3 VALUES (1,'master/slave');
159
CREATE TRIGGER tr1 AFTER UPDATE on t1 FOR EACH ROW
161
INSERT INTO t2 VALUES (NEW.a,NEW.b);
162
DELETE FROM t2 WHERE a < NEW.a;
164
CREATE TRIGGER tr2 AFTER INSERT on t2 FOR EACH ROW
166
UPDATE t3 SET a =2, b = 'master only';
171
UPDATE t1 SET a = 2, b = 'master only' WHERE a = 1;
174
INSERT INTO t1 VALUES (3,'master/slave');
175
INSERT INTO t2 VALUES (3,'master/slave');
176
INSERT INTO t3 VALUES (3,'master/slave');
177
SELECT * FROM t1 ORDER BY a;
181
SELECT * FROM t2 ORDER BY a;
185
SELECT * FROM t3 ORDER BY a;
190
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
192
SELECT * FROM t1 ORDER BY a;
196
SELECT * FROM t2 ORDER BY a;
200
SELECT * FROM t3 ORDER BY a;
204
DROP TABLE t1, t2, t3;
205
**** Case 2: Row binlog format and transactional tables ****
207
CREATE TABLE t4 (a INT, b VARCHAR(20)) ENGINE=innodb;
208
CREATE TABLE t5 (a INT, b VARCHAR(20)) ENGINE=innodb;
209
CREATE TABLE t6 (a INT, b VARCHAR(20)) ENGINE=innodb;
214
INSERT INTO t4 VALUES (2, 'master only');
215
INSERT INTO t5 VALUES (2, 'master only');
216
INSERT INTO t6 VALUES (2, 'master only');
219
INSERT INTO t4 VALUES (3, 'master/slave');
220
INSERT INTO t5 VALUES (3, 'master/slave');
221
INSERT INTO t6 VALUES (3, 'master/slave');
223
SELECT * FROM t4 ORDER BY a;
227
SELECT * FROM t5 ORDER BY a;
231
SELECT * FROM t6 ORDER BY a;
236
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
238
SELECT * FROM t4 ORDER BY a;
241
SELECT * FROM t5 ORDER BY a;
244
SELECT * FROM t6 ORDER BY a;
251
INSERT INTO t4 VALUES (6, 'master only');
252
INSERT INTO t5 VALUES (6, 'master only');
253
INSERT INTO t6 VALUES (6, 'master only');
256
INSERT INTO t4 VALUES (7, 'master only');
257
INSERT INTO t5 VALUES (7, 'master only');
258
INSERT INTO t6 VALUES (7, 'master only');
260
SELECT * FROM t4 ORDER BY a;
266
SELECT * FROM t5 ORDER BY a;
272
SELECT * FROM t6 ORDER BY a;
279
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=10;
281
SELECT * FROM t4 ORDER BY a;
284
SELECT * FROM t5 ORDER BY a;
287
SELECT * FROM t6 ORDER BY a;
292
INSERT INTO t4 VALUES (4, 'master only');
293
INSERT INTO t5 VALUES (4, 'master only');
294
INSERT INTO t6 VALUES (4, 'master only');
296
INSERT INTO t4 VALUES (5, 'master/slave');
297
INSERT INTO t5 VALUES (5, 'master/slave');
298
INSERT INTO t6 VALUES (5, 'master/slave');
300
SELECT * FROM t4 ORDER BY a;
308
SELECT * FROM t5 ORDER BY a;
316
SELECT * FROM t6 ORDER BY a;
325
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
327
SELECT * FROM t4 ORDER BY a;
331
SELECT * FROM t5 ORDER BY a;
335
SELECT * FROM t6 ORDER BY a;
339
DROP TABLE t4, t5, t6;
340
**** Case 3: Statement logging format and LOAD DATA with non-transactional table ****
342
CREATE TABLE t10 (a INT, b VARCHAR(20)) ENGINE=myisam;
346
SET SESSION BINLOG_FORMAT=STATEMENT;
347
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/rpl_bug28618.dat' INTO TABLE t10 FIELDS TERMINATED BY '|';
348
SELECT * FROM t10 ORDER BY a;
354
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
356
SELECT * FROM t10 ORDER BY a;