以降のセクションでは,mysqldオプション,およびレプリケーションで使用されてバイナリログを制御するためのサーバー変数の情報について説明します。レプリケションマスターとレプリケーションスレーブで使用されるオプションと変数のうち、バイナリロギングに関係するオプションおよび変数であるものは、別途説明します。これらのオプションと変数に関する基本情報するクイックリファレンス表のセットも含まれています。
コマンド行形式 | ——服务器id = # |
---|---|
システム変数 | server_id |
スコプ | グロバル |
動的 | はい |
型 | 数値 |
デフォルト | 0 |
最小値 | 0 |
最大値 | 4294967295 |
このオプションはマスターとスレーブのどちらのレプリケーションサーバーに共通で,レプリケーションで使用され,マスターおよびスレーブサーバーがそれら自身を一意に識別できます。詳細にいては,セクション17.1.4.2 "レプリケションマスタのオプションと変数",およびセクション17.1.4.3 "レプリケションスレブのオプションと変数"を参照してください。
マスタおよび各スレブでは,——服务器id
オプションを使用して,範囲が1から232−1の一意レプリケションidを確立する必要があります。「一意」とは,各IDがほかのレプリケーションマスターまたはスレーブで使用されるほかのあらゆるIDと異なっている必要があるということです。たとえば,服务器id = 3
。
——服务器id
を省略すると,デフォルトIDは0になり,この場合,マスターはすべてのスレーブからの接続を拒否し,スレーブはマスターへの接続を拒否します。MySQL 5.6では,サーバーIDが明示的に0に設定されていても,デフォルトの使用が許可されていても,サーバーはserver_id
システム変数を1に設定します。これはMySQL 5.7で修正された既知の問題です。
詳細にいては,セクション17.1.1.2 "レプリケションスレブ構成の設定"を参照してください。
MySQL 5.6以降,サバはユザが指定する——服务器id
に加えて真のuuidを生成します。これは,グロバルな読み取り専用変数server_uuid
として使用できます。
システム変数 | server_uuid |
---|---|
スコプ | グロバル |
動的 | いいえ |
型 | 文字列 |
起動時,MySQLサバは次のように自動的にUUIDを取得します。
auto.cnf
ファルは,my.cnf
またはmy.ini
ファ邮箱ルに使用されるものに類似した形式です。MySQL 5.6では;auto.cnf
に単一server_uuid
設定と値を含む,単一(汽车)
セクションのみがあります。ファ邮箱ルの内容は次に示すものに似ています。
[汽车]server_uuid = 8 a94f357 - aab4 - 11 - df - 86 - ab - c80aa9429562
auto.cnf
ファ邮箱ルは自動的に生成されます。このファ邮箱ルを書き込んだり修正したりしようとしないでください。
MySQL 5.6以降ではMySQLレプリケーションを使用するときに,マスターとスレーブは互いがのUUIDわかります。スレブのuuidの値は显示奴隶主人
の出力で確認できます。开始的奴隶
が実行されたあとは(前ではありません),マスタのuuidの値はスレブでは显示奴隶状态
の出力で確認できます。
停止奴隶
または重置的奴隶
ステトメントを発行しても,スレuuidはリセットされません。
MySQL 5.6.5以降では,サバのserver_uuid
は,そのサバで発生するトランザクションのgtidでも使用されます。詳細は,セクション17.1.3 "グロバルトランザクション識別子を使用したレプリケション"を参照してください。
起動時に,スレブI/Oスレッドは,そのマスタのuuidがそれ自身と等しい場合,——replicate-same-server-id
オプションが設定されている場合を除き,エラを生成して中断します。また次のどらかがtrueの場合,スレI/Oスレッドは警告を生成します。
予期された
server_uuid
を持マスタが存在しない。改变主
ステトメントがこれまで実行されなかったのみ,マスタのserver_uuid
が変化した。
MySQL 5.6でserver_uuid
システム変数が追加されても,このセクションですでに説明したように,MySQLレプリケーションの準備と実行の一部としてMySQLサーバーごとに一意の——服务器id
を設定する必要があることは変わりません。