doker的主从分离

1首先拉取docker镜像,我们这里使用5.7.24版本的mysql:
docker  image  pull  mysql:5.7.24
2!注意 当你遇到报错 重新配置时 为避免端口占用 建议先把原来安装的移除重新配置容器

开启的容器不能被移除 所以先停止 docker stop 名称

docker stop

在使用 docker rm 命令来删除不需要的容器

docker rm
在这里插入图片描述

Master(主):

docker run -p 3339:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.24

Slave(从):

docker run -p 3340:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.24
在这里插入图片描述

查看当前所有容器

docker ps -a
在这里插入图片描述

通过docker exec -it 627a2368c865 /bin/bash命令进入到Master容器内部,也可以通过docker exec -it mysql1 /bin/bash命令进入。

docker exec -it mysql1 /bin/bash

在这里插入图片描述

cd /etc/mysql切换到/etc/mysql目录下,然后vim my.cnf对my.cnf进行编辑。此时会报出 :bash: vim: command not found 需要我们在docker容器内部自行安装vim。
在容器内安装 vim 首先 执行apt-get update,然后再次执行apt-get install vim即可成功安装vim

apt-get update

apt-get install vim

在这里插入图片描述
在这里插入图片描述

在vim内编辑 vim /etc/mysql/my.cnf

vim /etc/mysql/my.cnf

添加以下代码
在这里插入图片描述

配置完成之后,需要重启mysql服务使配置生效。使用service mysql restart完成重启。
重启mysql服务时会使得docker容器停止,我们还需要docker start mysql1启动容器。

service mysql restart

docker start mysql1

在这里插入图片描述

拉取容器 docker exec -it mysql1 /bin/bash 然后进入 mysql

docker exec -it mysql1 /bin/bash
在这里插入图片描述

登录mysql

mysql -uroot -p123456

在Master数据库创建数据同步用户,授予用户 slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据。

CREATE USER ‘slave’@’%’ IDENTIFIED BY ‘123456’;

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘slave’@’%’;

在这里插入图片描述

执行show master status;

File和Position字段的值后面将会用到

show master status
在这里插入图片描述

然后退出mysql \q 退出该容器 exit

\q
在这里插入图片描述

通过 docker inspect --format=’{{.NetworkSettings.IPAddress}}’ mysql1 查询容器的ip

docker inspect --format=’{{.NetworkSettings.IPAddress}}’ mysql1

在这里插入图片描述

开始配置Slave(从 )

通过docker exec -it mysql2 /bin/bash命令进入从容器内部。

docker exec -it mysql2 /bin/bash

在容器内安装 vim 首先 执行apt-get update,然后再次执行apt-get install vim即可成功安装vim

apt-get update

apt-get install vim

在这里插入图片描述
在这里插入图片描述

在vim内编辑 vim /etc/mysql/my.cnf

vim /etc/mysql/my.cnf

添加以下代码
在这里插入图片描述

配置完成之后,需要重启mysql服务使配置生效。使用service mysql restart完成重启。

service mysql restart

重启mysql服务时会使得docker容器停止,我们还需要docker start mysql2启动从容器。

docker start mysql2

拉取容器 docker exec -it mysql2 /bin/bash 然后进入 mysql

docker exec -it mysql2 /bin/bash

在这里插入图片描述

然后执行

change master to master_host=‘172.18.0.2’, master_user=‘slave’, master_password=‘123456’,

master_port=3306, master_log_file=‘mysql-bin.000001’, master_log_pos=617, master_connect_retry=30;

在这里插入图片描述
.

执行 start slave;

start slave
在这里插入图片描述

查看 show slave status \G; 出现两个yes即可成功

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值