# test the following config when binlog_checksum is set to crc32: # binlog_checksum=crc32 # master_verify_checksum=ON|OFF # slave_sql_verify_checksum=ON|OFF --connect (conn1,127.0.0.1,root,,test,$MYPORT_1) --connect (conn2,127.0.0.1,root,,test,$MYPORT_2) --connect (conn3,127.0.0.1,root,,test,$MYPORT_3) --echo "master_verify_checksum=OFF, slave_sql_verify_checksum=ON" # connect 3 server. must have test database --connection conn1 set global master_verify_checksum=OFF; set global slave_sql_verify_checksum=OFF; --connection conn2 set global master_verify_checksum=OFF; set global slave_sql_verify_checksum=OFF; --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect --enable_reconnect --source include/wait_until_connected_again_old.inc --connection conn1 create table t1(id int, data longblob); let $cnt=100; while($cnt) { --disable_query_log insert into t1 values (1, repeat('a', 1024*30)); --enable_query_log dec $cnt; } let $cnt=100; while($cnt) { --disable_query_log insert into t1 values (1, repeat('a', 1024)); --connection conn2 let $doflush= query_get_value("select $cnt%30 as c1", c1, 1); if (!$doflush) { flush local logs; } --connection conn1 let $doflush= query_get_value("select $cnt%30 as c1", c1, 1); if (!$doflush) { flush local logs; } --enable_query_log dec $cnt; } --echo "master_verify_checksum=ON, slave_sql_verify_checksum=ON" # connect 3 server. must have test database --connection conn1 set global master_verify_checksum=ON; set global slave_sql_verify_checksum=ON; --connection conn2 set global master_verify_checksum=ON; set global slave_sql_verify_checksum=ON; --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect --enable_reconnect --source include/wait_until_connected_again_old.inc --connection conn1 let $cnt=100; while($cnt) { --disable_query_log insert into t1 values (1, repeat('a', 1024*30)); --enable_query_log dec $cnt; } let $cnt=100; while($cnt) { --disable_query_log insert into t1 values (1, repeat('a', 1024)); --connection conn2 let $doflush= query_get_value("select $cnt%30 as c1", c1, 1); if (!$doflush) { flush local logs; } --connection conn1 let $doflush= query_get_value("select $cnt%30 as c1", c1, 1); if (!$doflush) { flush local logs; } --enable_query_log dec $cnt; } --echo "master_verify_checksum=ON, slave_sql_verify_checksum=OFF" # connect 3 server. must have test database --connection conn1 set global master_verify_checksum=OFF; set global slave_sql_verify_checksum=ON; --connection conn2 set global master_verify_checksum=OFF; set global slave_sql_verify_checksum=ON; --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.2.expect --enable_reconnect --source include/wait_until_connected_again_old.inc --connection conn1 let $cnt=100; while($cnt) { --disable_query_log insert into t1 values (1, repeat('a', 1024*30)); --enable_query_log dec $cnt; } let $cnt=100; let $cnt=100; while($cnt) { --disable_query_log insert into t1 values (1, repeat('a', 1024)); --connection conn2 let $doflush= query_get_value("select $cnt%30 as c1", c1, 1); if (!$doflush) { flush local logs; } --connection conn1 let $doflush= query_get_value("select $cnt%30 as c1", c1, 1); if (!$doflush) { flush local logs; } --enable_query_log dec $cnt; } # check result --connection conn1 --source include/wait_follower_catchup.inc select count(distinct(APPLIED_INDEX)) from information_schema.alisql_cluster_global; # cleanup --connection conn1 drop table t1; set global master_verify_checksum=OFF; set global slave_sql_verify_checksum=OFF; --connection conn2 set global master_verify_checksum=OFF; set global slave_sql_verify_checksum=OFF;