replicate-same-server-id = 0 keeps MySQL from replicating binary log entries from itself.
For instance, here's a rough overview:
You write to Server A.
Server A writes that to its binary log.
Server B reads Server A's binary log and completes the same thing.
Because log-slave-updates is enabled, Server B writes it to its own binary log.
Server C reads Server B's binary log and completes the same thing.
Again, with log-slave-updates enabled, Server C writes it to its own binary log.
Server A reads Server C's binary log.
Here's where the issue starts. Without replicate-same-server-id = 0, Server A will
complete the insert/update/delete as it reads it from Server C's binary log. However, this
query originated from Server A, so it's just going to do it again. Then it's again
replicated to Server B, Server C, and so on. This can create a loop and/or break
replication. For instance, if you drop a table on A. It replicates across, and back to A.
Replication will error out because when it tries to drop the same table again, it already
doesn't exist. You need replicate-same-server-id = 0 set so that it knows not to execute
any binary log entries with its own server ID.
From: Adarsh Sharma [mailto:eddy.adarsh@stripped]
Sent: Monday, September 24, 2012 10:39 AM
To: Stillman, Benjamin
Subject: Re: Doubt Regd. Circular Replication In Mysql
Yes I fixed , but i solve the issue by enabling log-slave-updates only
Why we use the below parameter :-
replicate-same-server-id = 0
Ya i configured auto-increment settings properly.
On Mon, Sep 24, 2012 at 8:03 PM, Stillman, Benjamin
Sounds like you're missing the following in your my.cnf on server B (probably all of
replicate-same-server-id = 0
While you're checking, might as well as make sure your auto-increment settings are in
there and correct also.
From: Adarsh Sharma [mailto:eddy.adarsh@stripped<mailto:eddy.adarsh@stripped>]
Sent: Monday, September 24, 2012 10:23 AM
Subject: Doubt Regd. Circular Replication In Mysql
Today i set up a circular replication between three nodes A,B & C successfully.
I expect whatever writes on A will propagated to B & then Propagated to C because the
structure is like below :-
A -> B - > C -> A
I created a sample table stag in test database in A and insert few records that are also
replicated to B but not to C. Now when i created the same table in C , it shows errors in
show slave status\G output in A node.
I needed this setup because all these servers are in different colos so that whatever
writes to any node would replicated to others also for one database.
I followed the below link for setting this circular replication :-
Is it possible to achieve whatever i needed or i need to create Multi Master set up 2
Notice: This communication may contain privileged and/or confidential information. If you
are not the intended recipient, please notify the sender by email, and immediately delete
the message and any attachments without copying or disclosing them. LBI may, for any
reason, intercept, access, use, and disclose any information that is communicated by or
through, or which is stored on, its networks, applications, services, and devices.