美文网首页
Docker 中部署mysql Master/Slave Rep

Docker 中部署mysql Master/Slave Rep

作者: 0658e9a9d7cc | 来源:发表于2016-10-11 16:47 被阅读0次

Step 1.创建mysql容器

1. 创建 Master 容器

$ sudo docker run --name master -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7

2. 创建 Slave 容器

$ sudo docker run --name slave1 --link master:master -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -d mysql:5.7

$ sudo docker run --name slave2 --link master:master -e MYSQL_ROOT_PASSWORD=123456 -p 3308:3306 -d mysql:5.7

Step 2.将自定义配置文件复制到容器中

$ sudo docker cp custom.cnf master:/etc/mysql/conf.d

$ sudo docker cp custom.cnf slave1:/etc/mysql/conf.d

$ sudo docker cp custom.cnf slave2:/etc/mysql/conf.d

Step 3.重启 Master 和 Slave 容器

$ sudo docker restart master slave1 slave2

Step 4.配置 Master 和 Slave

1. 进入到Master容器进行操作

$ sudo docker exec -it master bash

# mysql -uroot -p123456

在Master容器中创建同步账户并授权

mysql>GRANT REPLICATION SLAVE ON *.* TO 'sync'@'%' IDENTIFIED BY 'SyncPassword';

mysql>show master status;

记住File和Position字段的值,下面要用

2. 进入到Slave容器进行操作

$ sudo docker exec -it slave1 bash

# mysql -uroot -p123456

在Slave容器中连接Master并启动Slave

mysql>CHANGE MASTER TO MASTER_HOST='master',MASTER_USER='sync',MASTER_PASSWORD='SyncPassword',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS= 300;

*MASTER_LOG_FILE的值就是Master中的File;MASTER_LOG_POS的值就是Master中的Position。

start slave;

配置Slave2,重复本步骤即可。

相关文章

网友评论

      本文标题:Docker 中部署mysql Master/Slave Rep

      本文链接:https://www.haomeiwen.com/subject/yoljjttx.html