Я не знал, как это описать, поэтому называю это полукругом. Вот что я делаю.
Сервер A
Сервер B = это подчиненный сервер A
Сервер C = Это подчиненный сервер сервера B
Когда я что-то обновляю на сервере A, это отражается на сервере B. Но это же изменение не отражается на сервере C.
Только когда я обновляю что-то на сервере B, тогда изменение отражается на сервере C.
Как сделать так, чтобы любые изменения, сделанные на сервере A, приходили на сервер B (который уже работает), а затем на сервер C?
РЕДАКТИРОВАТЬ
В ходе расследования я обнаружил, что когда я вношу некоторые изменения на сервере A, его положение в файле журнала изменяется. Но когда эти изменения отражаются на сервере B, положение файла журнала сервера B не меняется. Именно по этой причине сервер C не знает, были ли какие-либо изменения на сервере B, если я явно не изменю что-то (вставка, обновление, удаление) на сервере B.
Так есть ли способ указать MySQL на увеличение позиции файла журнала, когда Slave получает обновления от Master?
FYI- обычно называется репликационной цепью репликации. Для того, чтобы включить ее, необходимо убедиться, что на сервере B установлены следующие настройки:
log_bin
log_slave_updates
Это подскажет серверу B обновить положение лога при получении обновлений от А. Документацию по этому можно найти здесь (выделено дополнительно):
Обычно ведомый сервер не записывает никаких обновлений, которые поступают от a главный сервер к своему собственному двоичному журналу. Эта опция приводит к тому, что ведомый записывает обновления, выполняемые его потоком SQL, в собственный двоичный лог. Для того, чтобы эта опция имела какой-то эффект, ведомое устройство также должно быть запущено с опция --log-bin для включения двоичной регистрации. --log-slave-updates is используется, когда вы хотите связать серверы репликации цепочкой. Например, вы можете хотят настроить серверы репликации, используя такое расположение
A -> B -> C
Здесь A служит ведущим для ведомого B, а B - ведущим. для раба С. Чтобы это сработало, В должен быть и мастером, и рабом. Вы должны запускать и A, и B с --log-bin , чтобы включить двоичную регистрацию, и B с опцией --log-slave-updates, чтобы обновления, полученные от A записываются Б в его двоичный журнал.