Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.9Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


17.4.1.3 レプリケーションと文字セット

次のことは、異なる文字セットを使用する MySQL サーバー間でのレプリケーションに適用されます。

  • マスターが MySQL 4.1 を使用する場合、スレーブ MySQL バージョンに関係なく、マスターとスレーブで常に同じグローバル文字セットおよび照合順序を使用する必要があります。(これらは、--character-set-server および --collation-server オプションで制御されます。)そうでない場合、スレーブで重複キーエラーが発生する可能性があります。マスター文字セットで一意のキーがスレーブ文字セットで一意でない場合があるためです。マスターとスレーブが両方とも MySQL 5.0 以降であるときは、これは心配の種にはなりません。

  • マスターが MySQL 4.1.3 より古い場合、クライアントの文字セットをそのグローバル値と異なるものにしてはいけません。この文字セットの変更はスレーブに認識されないためです。つまり、クライアントは SET NAMESSET CHARACTER SET などを使用しないでください。マスターとスレーブの両方が 4.1.3 以降である場合、クライアントは文字セット変数のセッション値を自由に設定できます。これらの設定がバイナリログに書き込まれるため、スレーブに認識されるためです。つまり、クライアントは SET NAMES または SET CHARACTER SET を使用したり、collation_clientcollation_server などの変数を設定したりできます。ただし、クライアントはこれらの変数のグローバル値を変更することはできません。前述のように、マスターとスレーブは常に同一グローバル文字セット値を使用する必要があります。これは、ステートメントベースのレプリケーションと行ベースのレプリケーションのどちらを使用している場合にも当てはまります。

  • マスターのデータベースの文字セットがグローバル character_set_server 値と異なる場合、データベースのデフォルト文字セットを暗黙的に信頼しないように CREATE TABLE ステートメントを設計してください。推奨される回避策は、CREATE TABLE ステートメントに明示的に文字セットと照合順序を指定することです。