在docker里面搭建MySQL集群(主从复制)

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就是好了
看到两个yes就是成功了

4.剩下就是通过navicat…工具进形数据测试

在master服务里建库建表 然后在servant刷新一下就有了刚刚添加的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值