mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 21:12:26 +01:00
86e8ecc965
by binlogging some SET ONE_SHOT CHARACTER_SETetc, which will be enough until we have it more compact and more complete in 5.0. With the present patch, replication will work ok between 4.1.3 master and slaves, as long as: - master and slave have the same GLOBAL.COLLATION_SERVER - COLLATION_DATABASE and CHARACTER_SET_DATABASE are not used - application does not use the fact that table is created with charset of the USEd db (BUG#2326). all of which are not too hard to fulfill. ONE_SHOT is reserved for internal use of mysqlbinlog|mysql and works only for charsets, so we give error if used for non-charset vars. Fix for BUG#3875 "mysqlbinlog produces wrong ouput if query uses variables containing quotes" and BUG#3943 "Queries with non-ASCII literals are not replicated properly after SET NAMES". Detecting that master and slave have different global charsets or server ids.
24 lines
882 B
Text
24 lines
882 B
Text
# This test checks that the slave I/O thread refuses to start if slave
|
|
# and master have the same server id (because this is a useless setup,
|
|
# and otherwise SHOW SLAVE STATUS shows progress but all queries are
|
|
# ignored, which has caught our customers), unless
|
|
# --replicate-same-server-id.
|
|
|
|
source include/master-slave.inc;
|
|
connection slave;
|
|
create table t1 (n int);
|
|
reset master;
|
|
# replicate ourselves
|
|
stop slave;
|
|
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
|
eval change master to master_port=$SLAVE_MYPORT;
|
|
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
|
--replace_column 18 #
|
|
show slave status;
|
|
start slave;
|
|
insert into t1 values (1);
|
|
# can't MASTER_POS_WAIT(), it does not work in this weird setup
|
|
# (when slave is its own master without --replicate-same-server-id)
|
|
sleep 2; # enough time for the event to be replicated (it should not)
|
|
show status like "slave_running";
|
|
drop table t1;
|