サーバーX、Y、Zの3つのサーバーがあります。
X上にメインのmysqlDB(innodb DB)があります。
XからYまでのマスタースレーブを作成しました。ここではすべてが正常に機能しています。
そして今、私はYをZのマスターとして設定しました。
Z(3番目のサーバー)でスレーブステータスを表示する場合
show slave status\G Slave_IO_State:マスターがイベントを送信するのを待っています ... Slave_IO_Running:はい Slave_SQL_Running:はい ... Seconds_Behind_Master:0
しかし、データは同期されておらず、YからZに何も移動されていません。これを引き起こす原因について何か考えはありますか?
[〜#〜]編集[〜#〜]
サーバーYのmy.cnfに、次のconfがあります。
log-slave-updates = ON log-bin = mysql-bin
しかし、 '%slave%'のような変数を表示するには
'%slave%'; + --------------------------- +-のような変数を表示します------ + | Variable_name |値| + --------------------------- + -------- + | init_slave | | | log_slave_updates |オフ| | slave_compressed_protocol |オフ| | slave_exec_mode | STRICT | | slave_load_tmpdir |/tmp | | slave_net_timeout | 3600 | | slave_skip_errors |オフ| | slave_transaction_retries | 10 | | sql_slave_skip_counter | | + --------------------------- + -------- +
ご協力いただきありがとうございます
Xから受信した更新がYによってそのバイナリログに記録されるように、Yを -log-slave-updates オプションで開始したことを確認してください。
サーバーYのmy.cnfに、次のconfがあります。
log-slave-updates=ON
スイッチ値の代わりにブール値を使用します。
log-slave-updates=true
結果:
mysql> show global variables like '%slave%';
+---------------------------+--------+
| Variable_name | Value |
+---------------------------+--------+
| init_slave | |
| log_slave_updates | ON |
| slave_compressed_protocol | OFF |
| slave_exec_mode | STRICT |
| slave_load_tmpdir | /tmp |
| slave_net_timeout | 3600 |
| slave_skip_errors | OFF |
| slave_transaction_retries | 10 |
| sql_slave_skip_counter | |
+---------------------------+--------+
9 rows in set (0.00 sec)