CentOS7下Docker 部署Mysql环境并实现主从复制

  1. 准备两台或多台联网的并部署了Docker的CentOS7虚拟机
    虚拟机的ip
    这里暂且把图片里的192.168.0.101设为主服务器,192.168.0.102设为从服务器。主服务器对外暴露3307端口,从服务器对外暴露3308端口。另外一点,记得把虚拟机的防火墙都关咯!

  2. 创建Mysql容器

# 主服务器执行这条命令
docker run -itd --name my1 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
# 从服务器执行这条命令
docker run -itd --name my2 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
  1. 修改主服务器的Mysql配置文件
    Docker的mysql容器图
    在这里插入图片描述
    进入mysql容器
    在这里插入图片描述
    默认的配置文件在容器内的 /etc/mysql/my.cnf中
 # 需要主动安装vim命令 先apt-get update 再 apt-get install vim 
 vim  /etc/mysql/my.cnf

添加下面框选出来的三行,其中,server-id随便取,只要保证唯一性就好。
添加以上三行
修改完配置文件要重启mysql

# 重启容器内的mysql
service restart mysql
# 再退出容器,重启docker中的容器
docker restart '你的mysql容器id'

登录mysql后执行sql命令

# 可以通过任何客户端连接
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
  1. 修改从服务器的Mysql配置文件
    和第4步一样的步骤,注意修改my.cnf里的server-id
  2. 配置主从复制
    登录主服务器,执行命令show master status; 记下File与Position的值
    在这里插入图片描述
    再登录从服务器,执行下面一条sql命令
change master to
	master_host='192.168.0.101', # 主服务器ip
	master_user='root', # 主服务器的用户名
	master_log_file='mysql-bin.000001', # 与上图的File值对应
	master_log_pos=1365, # 与上图的Position值对应
	master_port=3307, # 主服务器的对外暴露的mysql端口
	master_password='123456'; # 主服务器的登录密码

再执行一条sql命令

# 开启slave
start slave;

最后检查主从复制是否开启成功,在从服务器中执行sql命令show slave status;
在这里插入图片描述
如果上面框选的两个属性的值都为yes,恭喜你,主从复制功能已成功开启。你可以去主服务器的mysql中新增数据库、表或记录。然后再去看看从服务器中mysql是否自动生成了新的记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值