1. 拉取镜像
docker pull mysql:5.7.21
2. 运行这个镜像
docker run -d --name maser mysql:5.7.21
3. 安装一些必要的软件
docker exec -it master /bin/bash
apt-get update
apt-get install vim
安装必要的软件
4. 生成一个带vim编辑器的mysql images
docker commit master mysqlwithvim:20180822
5.创建部分目录
mkdir /mysql
cd mysql
mkdir master/data
mkdir slave/data
创建master和slave 的部分配置文件
vim my.cnf
内容为:
[mysqld]
log-bin=mysql-bin
server-id=100
slave的配置文件为
[mysqld]
server-id=200
6. 启动两个container
docker rm -f master docker run -d --name master -p 3307:3306 -e MYSQL_ROOT_PASSWORD='Test6530' mysqlwithvim:20180822
docker run -d --name slave -e MYSQL_ROOT_PASSWORD='Test6530' mysqlwithvim:20180822
7. 进入 master 容器进行设置
docker exec -it master /bin/bash
#输入
mysql -u root -p
#输入密码 Test6530
#创建同步用户。
CREATE USER 'zhaobsh'@'%' IDENTIFIED BY 'Test6530';
#增加权限
GRANT REPLICATION SLAVE ON *.* TO 'zhaobsh'@'%';
GRANT ALL ON *.* TO 'zhaobsh'@'%';
flush privileges;
#查看数据库的状态
show master status;
结果为:
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 | 949 | | | |
+------------------+----------+--------------+------------------+-------------------+
查看ip地址
vi /etc/hosts
8. 进入slave容器进行处理。
docker exec -it slave /bin/bash
#输入
mysql -u root -p
#输入密码 Test6530
CHANGE MASTER TO MASTER_HOST='172.17.0.2', MASTER_USER='zhaobsh', MASTER_PASSWORD='Test6530', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=949;
#跟上面的查询结果对应.
9. 查看slave 的状态
在mysql 下面执行
start slave;
show slave statusG
10. 报错如图示
这里需要改改 重启一下 master和 slave 貌似 之前的 my.conf 没生效
重启一下 应该就可以了
测试同步
master 创建一个数据库
slave 在前后查看 能够同步
study From
https://blog.csdn.net/boling_cavalry/article/details/79751085