include/master-slave.inc [connection master] call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); connection master; create user test; connection slave; connect master2,127.0.0.1,test,,test,$MASTER_MYPORT,; connect slave2,127.0.0.1,test,,test,$SLAVE_MYPORT,; connection master1; create table t1(a int) engine=InnoDB; create table t2(a int) engine=MyISAM; insert into t1 values(1001); insert into t2 values(2001); connection master; set global read_only=1; connection master1; select @@read_only; @@read_only 1 select * from t1; a 1001 select * from t2; a 2001 connection slave; select @@read_only; @@read_only 0 select * from t1; a 1001 select * from t2; a 2001 connection master; set global read_only=0; connection master1; BEGIN; connection master2; BEGIN; connection master; select @@read_only; @@read_only 0 set global read_only=1; connection master1; *** On SUPER USER connection *** insert into t1 values(1002); insert into t2 values(2002); connection master2; *** On regular USER connection *** insert into t1 values(1003); ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement insert into t2 values(2003); ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement connection master1; *** SUPER USER COMMIT (must succeed) *** COMMIT; connection master2; *** regular USER COMMIT (must succeed - nothing to commit) *** COMMIT; connection master; select @@read_only; @@read_only 1 set global read_only=0; connection master1; insert into t1 values(1004); insert into t2 values(2004); select * from t1; a 1001 1002 1004 select * from t2; a 2001 2002 2004 connection slave; select * from t1; a 1001 1002 1004 select * from t2; a 2001 2002 2004 connection slave1; set global read_only=1; connection slave; select @@read_only; @@read_only 1 show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 connection master; insert into t1 values(1005); insert into t2 values(2005); select * from t1; a 1001 1002 1004 1005 select * from t2; a 2001 2002 2004 2005 connection slave; connection slave; select * from t1; a 1001 1002 1004 1005 select * from t2; a 2001 2002 2004 2005 connection slave2; insert into t1 values(1006); ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement insert into t2 values(2006); ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement connection master; drop user test; drop table t1; drop table t2; connection slave; set global read_only=0; include/rpl_end.inc