MySQL 8.0 リファレンスマニュアル


17.5.1.33 レプリケーションとタイムゾーン

デフォルトでは、ソースサーバーとレプリカサーバーは同じタイムゾーンであると想定します。 異なるタイムゾーンのサーバー間でレプリケートする場合は、ソースとレプリカの両方でタイムゾーンを設定する必要があります。 それ以外の場合、ソースのローカル時間に依存するステートメント (NOW() または FROM_UNIXTIME() 関数を使用するステートメントなど) は正しくレプリケートされません。

ソースおよびレプリカのシステムタイムゾーン (system_time_zone)、サーバーの現在のタイムゾーン (time_zone のグローバル値) およびセッションごとのタイムゾーン (time_zone のセッション値) の設定の組合せが正しい結果を生成していることを確認します。 特に、time_zone システム変数が SYSTEM の値に設定されていて、サーバーのタイムゾーンがシステムのタイムゾーンと同じであることを示している場合は、ソースとレプリカが異なるタイムゾーンを適用する可能性があります。 たとえば、ソースはバイナリログに次のステートメントを書き込むことができます:

SET @@session.time_zone='SYSTEM';

このソースとそのレプリカのシステムタイムゾーンの設定が異なる場合、レプリカグローバル time_zone 値がソースと一致するように設定されていても、このステートメントによってレプリカで予期しない結果が生成される可能性があります。 MySQL Server のタイムゾーン設定およびその変更方法の詳細は、セクション5.1.15「MySQL Server でのタイムゾーンのサポート」 を参照してください。

セクション17.5.1.14「レプリケーションとシステム関数」も参照してください。


関連キーワード:  ソース, 設定, ステートメント, バイナリ, ベース, サーバー, GTID, トランザクション, 変数, 構成