mysql 主从复制_容器实现mysql主从复制

需求:项目以私有化部署方式交付时,需对数据库进行主从复制配置

docker来实现mysql主从复制只比服务器实现起来多一层网络映射

环境准备:docker 18.*

本次测试搭建基于本地win10系统

1.启动私有化项目 以私有化容器内lnmp中的mysql为master

1.1 配置master

在my.cnf文件内 [mysqld]下 如不存在或已注释则新增:

[mysqld]
## 设置server_id,注意要唯一
server-id=101
## 开启二进制日志功能
log-bin=mysql-bin    

1.2 master上新增并赋权用户

create user 'slave'@'%' identified by '123456';

grant replication slave,replication client on *.* to 'slave'@'%';

show master status;

f5a488634643054b2de395c973f6e30c.png
获取主mysql的状态 并停止对mysql的读写以免发生变化

docker inspect --format='{{.NetworkSettings.IPAdress}}' containerName

1d5a573a2b49bfefe407db740a9b4f41.png
获取该主容器的ip映射

2. 配置slave 首先启动一个从mysql容器

docker run -p 32001:3306 --name mysql_slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

2.1 在my.cnf文件内 [mysqld]下 如不存在或已注释则新增:

[mysqld]
## 设置server_id,注意要唯一
server-id=102
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin    
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin 

2.2 连接master,在slave上执行:

mysql

-- 依次为 主机;用户;密码;端口;二进制文件名;起始位置;重试时间;

2.3 执行过后,查看slave状态:

show slave status G;

如下面两个参数显示为No

Slave_IO_Running: No

Slave_SQL_Running: No

则 开启从数据库:

mysql> start slave;

结尾.


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值