docker mysql 集群_docker 搭建主从同步的Mysql集群

1.为什么需要数据库集群?

随着业务的发展,系统的数据量和访问量都在大量增长。

对于大型网站来说,有不少业务是读多写少的。

2.数据库集群:

一个是主库,负责写入数据,我们称之为:写库

其他都是从库,负责读取数据,我们称之为:读库

afcdfffebd549a3e918fc77a3fe54b79.png

3.容器化实现:

环境搭建

下载mysql 镜像

docker pull mysql:5.7

启动 docker

docker run -p 3339:3306 --name mysql-master --privileged=true \

-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

docker run -p 3340:3306 --name mysql-slave --privileged=true \

-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

dde13ad7813c1200c69a06001c1ced39.png

查看ip

【查看主IP】

docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql-master

【查看从IP】

docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql-slave

8e9e29e4ace6cff9d9d7ec2ee7347dfe.png

主从配置实现:

主节点配置

1. 进入容器:

docker exec -it mysql-master /bin/bash

2. 修改配置文件

vim /etc/mysql/my.cnf

[mysqld]

## 同一局域网内注意要唯一

server-id=100

## 开启二进制日志功能,可以随便取(关键)

log-bin=mysql-bin

注:没有vim 需要安装

apt-get update

apt-get install vim

3. 重启mysql服务使配置生效

service mysql restart

## 重启mysql会使docker容器停止

docker start mysql-master

4. 创建数据同步用户并授权

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

632e30dcd76d47612bfb412006b8f6c1.png

从节点配置

修改配置文件

vim /etc/mysql/my.cnf

[mysqld]

## 设置server_id,注意要唯一

server-id=101

## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用 log-bin=mysql-slave-bin

## relay_log配置中继日志

relay_log=edu-mysql-relay-bin

重启生效

链接Master(主)和Slave(从)

1、查看主节点的状态

show master status;

ed57534369b7c24e0318c13516cbad6f.png

2、在Slave 中配置同步数据的File 和Position

change master to master_host='172.17.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;

配置说明:

master_host:Master的地址

master_port:Master的端口号,指的是容器的端口号

master_user:用于数据同步的用户

master_password:用于同步的用户的密码

master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值

master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值

master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒

3、开启主从复制

start slave;

4、在Slave中查看主从同步状态

show slave status \G;

1c52f89c7107416d63767b658d567bf8.png

测试主从复制

在Master创建一个数据库,检查Slave是否存在此数据库

7f41cfbf18414168cff1f9ca5817324d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值