mysql使用 replication 做主从,如果从上添加触发器,insert 语句有 now()时,需要在服务器启动项中添加default-time-zone。否则会引发时区问题。
16.4.1.31. Replication and Time Zones
The same system time zone should be set for both master and slave. Otherwise, statements depending on the local time on the master are not replicated properly, such as statements that use the NOW()
or FROM_UNIXTIME()
functions. You can set the time zone in which MySQL server runs by using the --timezone=
option of the timezone_name
mysqld_safe
script or by setting the TZ
environment variable. See also Section 16.4.1.14, “Replication and System Functions”.
If the master is MySQL 4.1 or earlier, both master and slave should also use the same default connection time zone. That is, the --default-time-zone
parameter should have the same value for both master and slave.
CONVERT_TZ(...,...,@@session.time_zone)
is properly replicated only if both master and slave are running MySQL 5.0.4 or newer.