MySQL Replication (M-M)

Prerequisites:
Two MySQL Servers — You need two MySQL servers, each with a unique hostname (e.g.,
server1.example.comandserver2.example.com).Network Access — Ensure that both MySQL servers can communicate with each other over the network (typically port
3306).Admin Access — You need to have root access to both servers to configure replication and make the necessary changes.
Step 1: Initial MySQL Configuration
Configure MySQL on both servers to enable binary logging and unique server IDs.
Edit the
my.cnffile on both servers (/etc/my.cnfor/etc/mysql/my.cnfdepending on your system):On Server 1 (e.g.,
server1.example.com):On Server 2 (e.g.,
server2.example.com):
After making these changes, restart MySQL on both servers:
Step 2: Create Replication User
Create a replication user on both servers. This user will have the necessary privileges to replicate data between the servers.
On Server 1 (run from
mysqlclient):On Server 2 (run from
mysqlclient):
Step 3: Get the Binary Log Coordinates
Find the current binary log position on each server.
On Server 1, execute:
This will show something like this:
Note the
FileandPositionvalues. In this example, it’smysql-bin.000001and107.On Server 2, execute the same command to get the binary log status:
Again, note the
FileandPosition.
Step 4: Set Up Replication on Server 1
Configure Server 1 to replicate from Server 2.
On Server 1, connect to the MySQL client and run:
Start the replication on Server 1:
Check the status of replication on Server 1 to ensure it’s running:
Look for
Slave_IO_Running: YesandSlave_SQL_Running: Yesin the output. If both areYes, replication is working.
Step 5: Set Up Replication on Server 2
Configure Server 2 to replicate from Server 1.
On Server 2, connect to the MySQL client and run:
Start the replication on Server 2:
Check the status of replication on Server 2:
Look for
Slave_IO_Running: YesandSlave_SQL_Running: Yesin the output. If both areYes, replication is working.
Step 6: Verify and Test the Setup
Test replication by inserting data into Server 1:
Check if the data appears on Server 2:
On Server 2, run:
You should see the data inserted on Server 1 appearing on Server 2.
Repeat the same on Server 2, inserting data into Server 2, and check if it appears on Server 1.
Step 7: Monitor Replication
Regularly monitor the replication status using:
Ensure that both
Slave_IO_RunningandSlave_SQL_RunningareYes.
Check for any replication errors. If you encounter errors, resolve them before proceeding to prevent data inconsistencies.
Last updated