1set @save_binlog_checksum= @@global.binlog_checksum; 2set @@global.binlog_checksum = default; 3select @@global.binlog_checksum as 'must be CRC32 by default'; 4must be CRC32 by default 5CRC32 6select @@session.binlog_checksum as 'no session var'; 7ERROR HY000: Variable 'binlog_checksum' is a GLOBAL variable 8set @@global.binlog_checksum = CRC32; 9set @@global.binlog_checksum = CRC32; 10set @@global.master_verify_checksum = 0; 11set @@global.master_verify_checksum = default; 12set @@global.binlog_checksum = ADLER32; 13ERROR 42000: Variable 'binlog_checksum' can't be set to the value of 'ADLER32' 14# 15# Bug#22914463 SET BINLOG_CHECKSUM CRASHES WHEN EXECUTED INSIDE 16# TRANSACTION 17# 18# Check that changing binlog_checksum inside transacation 19# is not allowed. 20# 21BEGIN; 22SET @@global.binlog_checksum = CRC32; 23ERROR HY000: The system variable binlog_checksum cannot be set when there is an ongoing transaction. 24COMMIT; 25XA START 'trx1'; 26SET @@global.binlog_checksum = CRC32; 27ERROR HY000: The system variable binlog_checksum cannot be set when there is an ongoing transaction. 28XA END 'trx1'; 29XA ROLLBACK 'trx1'; 30# 31# Check that changing binlog_checksum if the session owns 32# a GTID is not allowed. 33# 34SET GLOBAL GTID_MODE=OFF_PERMISSIVE; 35SET GLOBAL GTID_MODE=ON_PERMISSIVE; 36SET GLOBAL ENFORCE_GTID_CONSISTENCY=ON; 37SET GLOBAL GTID_MODE=ON; 38SET SESSION GTID_NEXT='11111111-AAAA-2222-BBBB-000000000000:5'; 39SET @@global.binlog_checksum = CRC32; 40ERROR HY000: Variable binlog_checksum cannot be changed by a client that owns a GTID. The client owns 11111111-aaaa-2222-bbbb-000000000000:5. Ownership is released on COMMIT or ROLLBACK. 41SET SESSION GTID_NEXT='AUTOMATIC'; 42SET GLOBAL GTID_MODE=ON_PERMISSIVE; 43SET GLOBAL GTID_MODE=OFF_PERMISSIVE; 44SET GLOBAL ENFORCE_GTID_CONSISTENCY=OFF; 45SET GLOBAL GTID_MODE=OFF; 46set @@global.binlog_checksum = @save_binlog_checksum; 47