MySQL 8.0 master-slave replication with using Docker. Slave will be in super read only mode.
This will create 3 MySQL containers with master-slave replication. The master will be running on port 20306 and the slaves will be running on port 20307 and 20308.
> [!info]
> The default password and database name could be change in env file in each database config folder. The current config is set to allow empty password.
```bash
./build.shdocker exec mysql_master sh -c "export MYSQL_PWD=111; mysql -u root mydb -e 'create table code(code int); insert into code values (100), (200)'"docker exec mysql_slave_1 sh -c "export MYSQL_PWD=111; mysql -u root mydb -e 'select * from code \G'"
docker exec mysql_slave_2 sh -c "export MYSQL_PWD=111; mysql -u root mydb -e 'select * from code \G'"docker-compose logsdocker-compose pssudo rm -rf ./master/data/*
sudo rm -rf ./slave-1/data/*
sudo rm -rf ./slave-2/data/*docker exec mysql_master sh -c 'mysql -u root -p111 -e "SHOW MASTER STATUS \G"'docker exec mysql_slave_1 sh -c 'mysql -u root -p111 -e "SHOW SLAVE STATUS \G"'
docker exec mysql_slave_2 sh -c 'mysql -u root -p111 -e "SHOW SLAVE STATUS \G"'docker exec -it mysql_master bashdocker exec -it mysql_slave_1 bash
docker exec -it mysql_slave_2 bash