MySQL 8.4 版本说明
默认情况下,源服务器和副本服务器假设它们在同一个时区。如果您要在不同时区之间进行复制,则必须在源服务器和副本服务器上都设置时区。否则,依赖源服务器本地时间的语句将无法正确复制,例如使用 NOW()
或 FROM_UNIXTIME()
函数的语句。
验证您在源服务器和副本服务器上针对系统时区 (system_time_zone
)、服务器当前时区(time_zone
的全局值)和每个会话时区(time_zone
的会话值)的设置组合是否产生了正确的结果。特别是,如果 time_zone
系统变量设置为 SYSTEM
值,表示服务器时区与系统时区相同,这可能会导致源服务器和副本服务器应用不同的时区。例如,源服务器可以在二进制日志中写入以下语句
SET @@session.time_zone='SYSTEM';
如果该源服务器及其副本的系统时区设置不同,即使副本的全局 time_zone
值已设置为与源服务器的匹配,该语句也可能在副本上产生意外结果。有关 MySQL 服务器时区设置以及如何更改它们的说明,请参见 第 7.1.15 节,“MySQL 服务器时区支持”。
另请参见 第 19.5.1.14 节,“复制和系统函数”。