1.搭建环境
首先你要有docker 其次你要有MySQL的镜像
至于怎么安装请自行搜索
2.创建master容器
下载完后 使用下面代码传创建一个主的MySQL 密码和对外映射端口随意更改 端口不冲突就行
温馨提示:先复制到文本里面把他改为一行 不然复制到docker里会出现只执行第一行就结束了
docker run -p 3308:3306 --name mysql_master
-v /docker/mysql_master/conf:/etc/mysql/conf.d
-v /docker/mysql_master/logs:/logs
-v /docker/mysql_master/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
创建完容器后在conf下创建配置文件 my.cnf
cd docker/mysql_master/conf
文件内容位 mysqlId 尽量唯一 不然可能会出现各种各样的报错
[mysqld]
server-id=1
log-bin=mysql-bin
创建完后进去容器内部进行重启
#进去容器内部
docker exec -it 容器id/容器名字 /bin/bash
#重启MySQL容器
service mysql restart
重启完后需要手动重新启动MySQL
docker start MySQL容器id/名字
重启完查看skip_networking状态 如果不死不是off的话 就重新来一遍上面的操作叭
注:需要在容器内部看
mysql> show variables like '%skip_networking%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| skip_networking | OFF |
+-----------------+-------+
1 row in set (0.00 sec)
最后查看一下master在docker里分配的ip是什么 一下会用到
docker inspect --format=’{{.NetworkSettings.IPAddress}}’ MySQL容器名称/容器id
3.创建servant容器
温馨提示:先复制到文本里面把他改为一行 不然复制到docker里会出现只执行第一行就结束了
docker run -p 3309:3306 --name mysql_servant
-v /docker/mysql_servant/conf:/etc/mysql/conf.d
-v /docker/mysql_servant/logs:/logs
-v /docker/mysql_servant/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
搭建完之后创建my.cnf配置文件 跟上面的一样,搞完之后重启服务
#这是里面内容
[mysqld]
server-id=2
重启完进入容器内部跟master绑定
docker exec -it 容器id/容器名字 /bin/bash
#进入之后
#如果你上面的密码没改就是和我的一样都是root 直接复制就行
mysql -uroot -proot
绑定关系
#这里就是上面查询的master分配的ip 复制正确就行了
CHANGE MASTER TO MASTER_HOST='查询的ip', MASTER_PORT=3306,MASTER_USER='root',MASTER_PASSWORD='root';
启动线程
satrt slave;
查看是个绑定成功
show slave status \G
看到两个yes就是成功了
4.剩下就是通过navicat…工具进形数据测试
在master服务里建库建表 然后在servant刷新一下就有了刚刚添加的