By default, source and replica servers assume that they are in
the same time zone. If you are replicating between servers in
different time zones, the time zone must be set on both source
and replica. Otherwise, statements depending on the local time
on the source are not replicated properly, such as statements
that use the NOW()
or
FROM_UNIXTIME()
functions.
Verify that your combination of settings for the system time
zone (system_time_zone
), server
current time zone (the global value of
time_zone
), and per-session
time zones (the session value of
time_zone
) on the source and
replica is producing the correct results. In particular, if the
time_zone
system variable is
set to the value SYSTEM
, indicating that the
server time zone is the same as the system time zone, this can
cause the source and replica to apply different time zones. For
example, a source could write the following statement in the
binary log:
SET @@session.time_zone='SYSTEM';
If this source and its replica have a different setting for
their system time zones, this statement can produce unexpected
results on the replica, even if the replica's global
time_zone
value has been set to
match the source's. For an explanation of MySQL Server's time
zone settings, and how to change them, see
MySQL Server Time Zone Support.
See also Section 4.1.15, “Replication and System Functions”.