docker 安装 mysql cluster

docker 部署 主从复制集群

一、mysql-master

dockerfile

文件夹如下 (这里不是用的docker-compose,测试docker-compose时)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ymj5cwW-1640775748234)(evernotecid://7FADD559-2149-4FF1-903A-573CB898BE35/appyinxiangcom/9632119/ENResource/p912)]

master的dockerfile

FROM mysql:8.0.27
MAINTAINER liu
ADD ./master/my.cnf /etc/mysql/my.cnf

master 的 mysql配置文件

[mysqld]

server_id=100

binlog-ignore-db=mysql 

log-bin=replicas-mysql-bin 

binlog_cache_size=1M  

binlog_format=mixed

binlog_expire_logs_seconds=2592000

replica_skip_errors=1062

secure_file_priv=/var/lib/mysql

构建镜像

docker build -f master/Dockerfile -t local:mysql-master .

创建容器(这里也可以把mysql常用的 /var/lib/mysql ,以及日志等目录挂载出来)

docker run -itd --name=mysql-master -e MYSQL_ROOT_PASSWORD=123456 -p 33065:3306 local:mysql-master

mysql-slave

dockerfile
FROM mysql:8.0.27
MAINTAINER liu
ADD ./slave/my.cnf /etc/mysql/my.cnf

slave 的 配置文件(my.cnf)

[mysqld]

server_id=101 

binlog-ignore-db=mysql

log-bin=replicas-mysql-slave1-bin 

binlog_cache_size=1M  


binlog_format=mixed 

binlog_expire_logs_seconds=2592000

replica_skip_errors=1062  

relay_log=replicas-mysql-relay-bin

log_replica_updates=1

secure_file_priv=/var/lib/mysql

read_only=1

构建镜像

docker build -f slave/Dockerfile -t local:mysql-slave .

创建容器(这里也可以把mysql常用的 /var/lib/mysql ,以及日志等目录挂载出来)

docker run -itd --name=mysql-slave -e MYSQL_ROOT_PASSWORD=123456 -p 33066:3306 local:mysql-slave

设置同步

1、 在主库操作

(1)查询主库 master 状态
show master status;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f4hT19uL-1640775748239)(evernotecid://7FADD559-2149-4FF1-903A-573CB898BE35/appyinxiangcom/9632119/ENResource/p913)]

获得File,position字段值

2、从库操作

show master status; 只是确认下,实际查不查这一步无所谓

  • 注:如果是首次设置slave,可以直接操作第三步,如果是已经设置过了的,则需要从第一步可以完整执行*

(1) stop slave; 停止 slave,
(2) reset master; 重置 master
(3)

CHANGE MASTER TO
   MASTER_HOST='172.17.0.1',
   MASTER_PORT=33065,
   MASTER_USER='root',
   MASTER_PASSWORD='123456',
   MASTER_LOG_FILE='replicas-mysql-bin.000003',
   MASTER_LOG_POS=2253;

MASTER_HOST 是 master的端口,这里用的是docker桥接的网桥地址,用 域名也是可以的
MASTER_PORT 因为master 修改了端口,所以这里需要设置一下,如果是默认的3306 就不需要重新设置
MASTER_LOG_FILE 是master的binlog 文件,是从master数据库中查询获得
MASTER_LOG_POS 同步位置,从master数据库中查询获得

(4) start slave; 启动 slave

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值