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


MySQL 5.6 リファレンスマニュアル  /  ...  /  レプリケーションおよびバイナリロギングのオプションと変数

17.1.4 レプリケーションおよびバイナリロギングのオプションと変数

以降のセクションでは、mysqld オプション、およびレプリケーションで使用されてバイナリログを制御するためのサーバー変数の情報について説明します。レプリケーションマスターとレプリケーションスレーブで使用されるオプションと変数のうち、バイナリロギングに関係するオプションおよび変数であるものは、別途説明します。これらのオプションと変数に関する基本情報するクイックリファレンス表のセットも含まれています。

特に重要なものは --server-id オプションです。

Property Value
コマンド行形式 --server-id=#
システム変数 server_id
スコープ グローバル
動的 はい
数値
デフォルト 0
最小値 0
最大値 4294967295

このオプションはマスターとスレーブのどちらのレプリケーションサーバーに共通で、レプリケーションで使用され、マスターおよびスレーブサーバーがそれら自身を一意に識別できます。詳細については、セクション17.1.4.2「レプリケーションマスターのオプションと変数」,およびセクション17.1.4.3「レプリケーションスレーブのオプションと変数」を参照してください。

マスターおよび各スレーブでは、--server-id オプションを使用して、範囲が 1 から 232 − 1 の一意レプリケーション ID を確立する必要があります一意とは、各 ID が、ほかのレプリケーションマスターまたはスレーブで使用されるほかのあらゆる ID と異なっている必要があるということです。たとえば、server-id=3

--server-id を省略すると、デフォルト ID は 0 になり、この場合、マスターはすべてのスレーブからの接続を拒否し、スレーブはマスターへの接続を拒否します。MySQL 5.6 では、サーバー ID が明示的に 0 に設定されていても、デフォルトの使用が許可されていても、サーバーは server_id システム変数を 1 に設定します。これは MySQL 5.7 で修正された既知の問題です。

詳細については、セクション17.1.1.2「レプリケーションスレーブ構成の設定」を参照してください。

server_uuid

MySQL 5.6 以降、サーバーはユーザーが指定する --server-id に加えて真の UUID を生成します。これは、グローバルな読み取り専用変数 server_uuid として使用できます。

Property Value
システム変数 server_uuid
スコープ グローバル
動的 いいえ
文字列

起動時、MySQL サーバーは次のように自動的に UUID を取得します。

  1. ファイル data_dir/auto.cnf に書かれている UUID を読み取って使用しようとします (ここで、data_dir はサーバーのデータディレクトリ)。

  2. data_dir/auto.cnf が見つからない場合、新しい UUID を生成してこのファイルに保存します (必要に応じてファイルを作成します)。

auto.cnf ファイルは、my.cnf または my.ini ファイルに使用されるものに類似した形式です。MySQL 5.6 では、auto.cnf に単一 server_uuid 設定と値を含む、単一 [auto] セクションのみがあります。ファイルの内容は次に示すものに似ています。

[auto]
server_uuid=8a94f357-aab4-11df-86ab-c80aa9429562
重要

auto.cnf ファイルは自動的に生成されます。このファイルを書き込んだり修正したりしようとしないでください。

MySQL 5.6 以降では、MySQL レプリケーションを使用するときに、マスターとスレーブは互いの UUID がわかります。スレーブの UUID の値は SHOW SLAVE HOSTS の出力で確認できます。START SLAVE が実行されたあとは (前ではありません)、マスターの UUID の値はスレーブでは SHOW SLAVE STATUS の出力で確認できます。

注記

STOP SLAVE または RESET SLAVE ステートメントを発行しても、スレーブで使用されるマスターの UUID はリセットされません

MySQL 5.6.5 以降では、サーバーの server_uuid は、そのサーバーで発生するトランザクションの GTID でも使用されます。詳細は、セクション17.1.3「グローバルトランザクション識別子を使用したレプリケーション」を参照してください。

起動時に、スレーブ I/O スレッドは、そのマスターの UUID がそれ自身と等しい場合、--replicate-same-server-id オプションが設定されている場合を除き、エラーを生成して中断します。また次のどちらかが true の場合、スレーブ I/O スレッドは警告を生成します。

  • 予期された server_uuid を持つマスターが存在しない。

  • CHANGE MASTER TO ステートメントがこれまで実行されなかったのみ、マスターの server_uuid が変化した。

注記

MySQL 5.6 で server_uuid システム変数が追加されても、このセクションですでに説明したように、MySQL レプリケーションの準備と実行の一部として MySQL サーバーごとに一意の --server-id を設定する必要があることは変わりません。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.