include/master-slave.inc Warnings: Note #### Sending passwords in plain text without SSL/TLS is extremely insecure. Note #### Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information. [connection master] call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); call mtr.add_suppression("Option binlog_cache_size "); SET GLOBAL max_binlog_cache_size = 4096; Warnings: Warning 1738 Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size. SET GLOBAL binlog_cache_size = 4096; SET GLOBAL max_binlog_stmt_cache_size = 4096; Warnings: Warning 1745 Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size. SET GLOBAL binlog_stmt_cache_size = 4096; CREATE TABLE t1(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=Innodb; CREATE TABLE t2(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=MyIsam; CREATE TABLE t3(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=Innodb; ###### 1 - SINGLE STATEMENT ###### *** Single statement on transactional table *** Got one of the listed errors *** Single statement on non-transactional table *** Got one of the listed errors include/wait_for_slave_sql_error_and_skip.inc [errno=1590] *** Single statement on both transactional and non-transactional tables. *** Got one of the listed errors include/wait_for_slave_sql_error_and_skip.inc [errno=1590] include/diff_tables.inc [master:t1,slave:t1] ######### 2 - BEGIN - IMPLICIT COMMIT by DDL ######### TRUNCATE TABLE t1; TRUNCATE TABLE t2; TRUNCATE TABLE t3; BEGIN; Got one of the listed errors Got one of the listed errors Got one of the listed errors BEGIN; Got one of the listed errors Got one of the listed errors BEGIN; Got one of the listed errors Got one of the listed errors include/diff_tables.inc [master:t1,slave:t1] ###### 3 - BEGIN - COMMIT ###### TRUNCATE TABLE t1; TRUNCATE TABLE t2; TRUNCATE TABLE t3; BEGIN; Got one of the listed errors Got one of the listed errors Got one of the listed errors COMMIT; include/diff_tables.inc [master:t1,slave:t1] ####### 4 - BEGIN - ROLLBACK ####### TRUNCATE TABLE t1; TRUNCATE TABLE t2; TRUNCATE TABLE t3; BEGIN; Got one of the listed errors Got one of the listed errors Got one of the listed errors ROLLBACK; Warnings: Warning 1196 Some non-transactional changed tables couldn't be rolled back include/diff_tables.inc [master:t1,slave:t1] ###### 5 - PROCEDURE ####### TRUNCATE TABLE t1; TRUNCATE TABLE t2; TRUNCATE TABLE t3; CREATE PROCEDURE p1(pd VARCHAR(30000)) BEGIN INSERT INTO t1 (a, data) VALUES (1, pd); INSERT INTO t1 (a, data) VALUES (2, pd); INSERT INTO t1 (a, data) VALUES (3, pd); INSERT INTO t1 (a, data) VALUES (4, pd); INSERT INTO t1 (a, data) VALUES (5, 's'); END// TRUNCATE TABLE t1; TRUNCATE TABLE t1; BEGIN; Got one of the listed errors COMMIT; TRUNCATE TABLE t1; BEGIN; Got one of the listed errors ROLLBACK; include/diff_tables.inc [master:t1,slave:t1] ####### 6 - XID ###### TRUNCATE TABLE t1; TRUNCATE TABLE t2; TRUNCATE TABLE t3; BEGIN; Got one of the listed errors Got one of the listed errors Got one of the listed errors ROLLBACK TO sv; Warnings: Warning 1196 Some non-transactional changed tables couldn't be rolled back COMMIT; include/diff_tables.inc [master:t1,slave:t1] ####### 7 - NON-TRANS TABLE ####### TRUNCATE TABLE t1; TRUNCATE TABLE t2; TRUNCATE TABLE t3; BEGIN; Got one of the listed errors Got one of the listed errors Got one of the listed errors COMMIT; BEGIN; Got one of the listed errors COMMIT; include/diff_tables.inc [master:t1,slave:t1] ####### 8 - LOAD DATA INFILE INTO TABLE ####### [connection master] CREATE TABLE t6 (a varchar(20)) ENGINE=Innodb; LOAD DATA INFILE 'temp_file' INTO TABLE t6; ERROR HY000: Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage; increase this mysqld variable and try again include/assert.inc [assert that the above Event has not been added to binlog] include/assert.inc [Check that the LOAD DATA didn't add any data into the table] include/sync_slave_sql_with_master.inc include/assert.inc [Check that the LOAD DATA didn't add any data into the table] [connection master] DROP TABLE t6; include/sync_slave_sql_with_master.inc ######### 9 - Bug#55375(Regression Bug) Transaction bigger than ########## ######### max_binlog_cache_size crashes slave ########## # [ On Slave ] SET GLOBAL max_binlog_cache_size = 4096; Warnings: Warning 1738 Option binlog_cache_size (32768) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size. SET GLOBAL binlog_cache_size = 4096; SET GLOBAL max_binlog_stmt_cache_size = 4096; Warnings: Warning 1745 Option binlog_stmt_cache_size (32768) is greater than max_binlog_stmt_cache_size (4096); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size. SET GLOBAL binlog_stmt_cache_size = 4096; include/stop_slave.inc include/start_slave.inc CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*"); CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*"); CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*"); CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master. Message: error writing to the binary log"); call mtr.add_suppression("The slave coordinator and worker threads are stopped, possibly leaving data in inconsistent state"); TRUNCATE t1; SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL max_binlog_stmt_cache_size= ORIGINAL_VALUE; SET GLOBAL binlog_stmt_cache_size= ORIGINAL_VALUE; BEGIN; Repeat statement 'INSERT INTO t1 VALUES($n, repeat("a", 32))' 128 times COMMIT; include/wait_for_slave_sql_error.inc [errno=1534,1197] SELECT count(*) FROM t1; count(*) 0 include/show_binlog_events.inc SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL max_binlog_stmt_cache_size= ORIGINAL_VALUE; SET GLOBAL binlog_stmt_cache_size= ORIGINAL_VALUE; include/stop_slave.inc include/start_slave.inc SELECT count(*) FROM t1; count(*) 128 ######## CHECK MAX_BINLOG_CACHE_SIZE and BINLOG_CACHE_SIZE ######### SET @@GLOBAL.MAX_BINLOG_CACHE_SIZE= 8192; Warnings: Warning 1738 Option binlog_cache_size (32768) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size. SHOW VARIABLES LIKE 'MAX_BINLOG_CACHE_SIZE'; Variable_name Value max_binlog_cache_size 8192 SHOW VARIABLES LIKE 'BINLOG_CACHE_SIZE'; Variable_name Value binlog_cache_size 8192 SET @@GLOBAL.BINLOG_CACHE_SIZE= 16384; Warnings: Warning 1738 Option binlog_cache_size (16384) is greater than max_binlog_cache_size (8192); setting binlog_cache_size equal to max_binlog_cache_size. SHOW VARIABLES LIKE 'MAX_BINLOG_CACHE_SIZE'; Variable_name Value max_binlog_cache_size 8192 SHOW VARIABLES LIKE 'BINLOG_CACHE_SIZE'; Variable_name Value binlog_cache_size 8192 SET @@GLOBAL.MAX_BINLOG_CACHE_SIZE= 4096; Warnings: Warning 1738 Option binlog_cache_size (8192) is greater than max_binlog_cache_size (4096); setting binlog_cache_size equal to max_binlog_cache_size. SHOW VARIABLES LIKE 'MAX_BINLOG_CACHE_SIZE'; Variable_name Value max_binlog_cache_size 4096 SHOW VARIABLES LIKE 'BINLOG_CACHE_SIZE'; Variable_name Value binlog_cache_size 4096 ######### CLEAN ######### DROP TABLE t1; DROP TABLE t2; DROP TABLE t3; DROP TABLE IF EXISTS t4; DROP TABLE t5; DROP PROCEDURE p1; include/rpl_end.inc