The foreign_key_checks
,
unique_checks
, and
sql_auto_is_null
variables are
all replicated.
sql_mode
is also replicated
except for the
NO_DIR_IN_CREATE
mode.
However, when mysqlbinlog parses a
SET @@sql_mode =
statement, the full
mode
mode
value, including
NO_DIR_IN_CREATE
, is passed to
the receiving server.
The storage_engine
system
variable is not replicated, which is a good thing for
replication between different storage engines.
Starting from MySQL 5.0.3 (master and slave), replication works even if the master and slave have different global character set variables. Starting from MySQL 5.0.4 (master and slave), replication works even if the master and slave have different global time zone variables.
Session variables are not replicated properly when used in
statements that update tables. For example, SET
max_join_size=1000
followed by INSERT INTO
mytable VALUES(@@max_join_size)
will not insert the
same data on the master and the slave. This does not apply to
the common sequence of SET time_zone=...
followed by INSERT INTO mytable
VALUES(CONVERT_TZ(...,...,@@time_zone))
, which
replicates correctly as of MySQL 5.0.4.
Update statements that refer to user-defined variables (that is,
variables of the form
@
) are
replicated correctly in MySQL 5.0. However, this is
not true for versions prior to 4.1. Note that user variable
names are case insensitive starting in MySQL 5.0. You should
take this into account when setting up replication between MySQL
5.0 and older versions.
var_name
In MySQL 5.0.46 and later, the following session variables are written to the binary log and honored by the replication slave when parsing the binary log, regardless of the logging format:
Even though session variables relating to character sets and collations are written to the binary log, replication between different character sets is not supported.
User Comments
Add your own comment.