我不知道如何描述,所以我把它称为半圆。 这是我正在做的。
服务器A
服务器B =这是服务器A的从属
服务器C =这是服务器B的从属
当我更新服务器A上的某些内容时,它反映在服务器B上。但是,相同的更改不反映在服务器C上
只有当我更新服务器B上的东西,然后改变反映在服务器C.
我如何做到这一点,所以在服务器A上完成的任何更改将到达服务器B(它已经在工作),然后它到服务器C?
编辑
经过调查,我发现当我在服务器A上进行一些更改时,其日志文件位置发生变化。 但是,当这些更改反映在服务器B上时,则服务器B日志文件的位置不会更改。 这是因为这个原因,服务器C不知道服务器B上是否有任何改变,除非我明确地改变(插入,更新,删除)在服务器B.
那么当Slave从Master接收到更新时,有没有办法告诉MySQL增加日志文件的位置?
仅供参考 – 这通常称为复制中继链。 为了打开这个,你必须确保在服务器B上设置了以下设置:
log_bin log_slave_updates
当收到来自A的更新时,这将告诉服务器B更新其日志位置。 这里的文档可以在这里find(重点添加):
通常情况下,从服务器不会将从主服务器接收到的任何更新写入其自己的二进制日志。 该选项会使从服务器将由其SQL线程执行的更新写入其自己的二进制日志。 为了使这个选项有效,从站也必须使用–log-bin选项来启动二进制日志logging。 –log-slave-updates用于连接复制服务器。 例如,您可能希望使用此安排设置复制服务器
A -> B -> C在这里,A作为从B的主人,B作为从C的主人。为此,B必须是主人和奴隶。 必须使用–log-bin启动A和B以启用二进制日志logging,并使用–log-slave-updates选项启动B,以便从A接收到的更新由Blogging到其二进制日志中。