使用docker配置mysql主从复制

MySQL的主从复制之前也没做过,刚百度了下发现并不算难,但同时开两个虚机挺麻烦,于是我就想到了使用docker来配置MySQL主从复制。

环境:docker,centos,MySQL镜像,这里我直接pull了一个镜像

使用docker配置mysql主从复制

运行一个master容器
docker run -d --name master -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root mysql
docker ps -a

使用docker配置mysql主从复制

这里将master容器的3306端口映射给主机的3307端口,-e代表设置环境变量master的MySQL密码为root,-d代表让容器后台运行,使用docker ps -a查看所有的容器

进入master容器,修改master配置
docker exec -it 98d /bin/bash 
创建master的复制账号
grant replication slave on *.* to 'wanger'@'%' identified by 'wanger';
flush privileges;

使用docker配置mysql主从复制

修改master配置,开启二进制日志,设置server-id,server-id值唯一

使用docker配置mysql主从复制

配置完成后重启容器,进入MySQL

Show master status;

查看二进制文件名与位置,这个值要记住,在从容器上会用到

使用docker配置mysql主从复制

到这里master容器配置完成,接下来运行一个slave容器
Docker run -d –name slave -p 3308:3306 -e MYSQL_ROOT_PASSWORD=root  mysql
进入slave容器,修改slave的配置

开启二进制日志,设置server-id,配置完成后重启服务
使用docker配置mysql主从复制

打开MySQL会话,执行同步sql语句,同步master账号信息

使用docker配置mysql主从复制

使用show slave status\G;查看slave的状态,可以看到主从同步设置成功了

使用docker配置mysql主从复制

在配置主从复制的时候出了点小问题,Slave_Io_Running一直处于connecting状态,配置信息看着没错,就以为是网络问题,就去ping master容器,后来发现我ping的一直是slave的容器,那我的配置信息的IP自然也是slave的IP了,后来改了IP果断yes。

开始测试主从复制

我在master上创建了一个名为wanger的数据库,在slave可以查看到此数据库的存在
使用docker配置mysql主从复制

使用docker配置mysql主从复制


欢迎各位关注我的微信公众号“没有故事的陈师傅”
使用docker配置mysql主从复制

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值