Lab 01: MySQL Replication
Overview
Step 1: Launch Primary MySQL Container
# Create a Docker network so containers can communicate
docker network create mysql-replication
# Start the PRIMARY node
docker run -d \
--name mysql-primary \
--network mysql-replication \
-e MYSQL_ROOT_PASSWORD=rootpass \
-e MYSQL_DATABASE=testdb \
mysql:8.0 \
--server-id=1 \
--log-bin=mysql-bin \
--binlog-format=ROW \
--gtid-mode=ON \
--enforce-gtid-consistency=ON \
--log-slave-updates=ON
# Wait for MySQL to be ready
for i in $(seq 1 30); do
docker exec mysql-primary mysql -uroot -prootpass -e "SELECT 1" 2>/dev/null && break || sleep 2
done
echo "Primary ready!"Step 2: Create the Replication User on Primary
Step 3: Check Primary Binary Log Status
Step 4: Launch Replica MySQL Container
Step 5: Connect Replica to Primary
Step 6: Test Replication — Write on Primary, Read on Replica
Step 7: Monitor Replication with GTID
Step 8: Capstone — Simulate Failover & Promote Replica
Summary
Concept
Key Setting
Purpose
Key Takeaways
Last updated
