Docker Mysql 主从搭建
创建mysql网络
docker network create mysql_network
create master & slave cnf
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW
expire_logs_days=7
[mysqld]
server-id=2
relay-log=mysql-relay-bin
read-only=1
create master node
docker run -d \
--name mysql-master \
-p 3307:3306 \
--network mysql_network \
-v /Users/zhaohongfeng/project/mysql-cluster/master.cnf:/etc/mysql/my.cnf \
-e MYSQL_ROOT_PASSWORD=12345678 \
-e MYSQL_DATABASE=exampledb \
-e MYSQL_USER=replication_user \
-e MYSQL_PASSWORD=12345678 \
mysql:5.7
create master node user
docker exec -it mysql-master mysql -uroot -p
ALTER USER 'replication_user'@'%' IDENTIFIED BY '12345678';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
create slave node
docker run -d \
--name mysql-slave \
--network mysql_network \
-p 3308:3306 \
-v /Users/zhaohongfeng/project/mysql-cluster/slave.cnf:/etc/mysql/my.cnf \
-e MYSQL_ROOT_PASSWORD=12345678 \
mysql:5.7
docker exec -it mysql-slave mysql -uroot -p
CHANGE MASTER TO
MASTER_HOST='mysql-master',
MASTER_USER='replication_user',
MASTER_PASSWORD='12345678',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=1947;
START SLAVE;
SHOW SLAVE STATUS\G