docker配置mysql主从集群的搭建

本文详细介绍了如何使用Docker构建MySQL主从集群,包括拉取镜像、配置主服务器和从服务器、设置复制关系以及维护主从状态的步骤。
摘要由CSDN通过智能技术生成

MYsql主从集群搭建

主从集群参考,这篇还不错,主要是我看的那一篇找不到了

拉取docker镜像

docker load -i /opt/mysql-8.0.29.tar

在这里插入图片描述
查看docker 镜像

docker images

在这里插入图片描述
step1: 在dockert中创建并启动MySQL主服务器:端口3306

docker run -d \
-p 3316:3306 \
-v /mydata/mysql/master/conf:/etc/mysql/conf.d \
-v /mydata/mysql/master/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql-master \
mysql:8.0.29

step2:创建MySQL主服务器配置文件:
默认情况下MySQL的binlog日志是自动开启的,

可以通过如下配置定义一些可选配置 (新建配置文件)

vim /mydata/mysql/master/conf/my.cnf
[mysqld]
#服务器唯一id,默认值1
server-id=1
#设置日志格式,默认值ROW
binlog_format=STATEMENT
#二进制日志名,默认binlog
#log-bin=binlog
#设置需要复制的数据库,默认复制全部数据库
#binlog-do-db=mytestdb
#设置不需要复制的数据库
#binlog-ignore-db=mysql
#binlog-ignore-db=infomation_schema

重启MySQL容器

docker restart mysql-master
docker exec -it mysql-master env LANG=C.UTF-8 /bin/bash
mysql -uroot -p
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

创建slave用户

CREATE USER'mysql_slave'@'%';

设置密码

ALTER USER 'mysql_slave'@'%'IDENTIFIED WITH mysql_native_password BY '123456';
授子复制权限
GRANT REPLICATION SLAVE ON *.* To 'mysql_slave'@'%';

刷新权限

FLUSH PRIVILEGES;

查询主节点的状态

show master status

在这里插入图片描述
创建子节点,开两个链接linux的窗口,内存不够开一个演示
下面是再两个新窗口分别运行的命令:

docker run -d \
-p 3317:3306  \
-v /mydata/mysql/slave1/conf:/etc/mysql/conf.d \
-v /mydata/mysql/slave1/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql-slave1 \
mysql:8.0.29
docker run -d \
-p 3318:3306  \
-v /mydata/mysql/slave2/conf:/etc/mysql/conf.d \
-v /mydata/mysql/slave2/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql-slave2 \
mysql:8.0.29

step2:创建MySQL从服务器配置文件:

vim /mydata/mysql/slave1/conf/my.cnf

vim /mydata/mysql/slave2/conf/my.cnf
[mysqld]
#服务器唯一1d,每台服务器的1d必须不同,如果配置其他从机,注意修改1d
server-id=2
#中继日志名,默认XXXXXXXXXXXX-relay-bin
#relay-log=relay-bin
[mysqld]
#服务器唯一1d,每台服务器的1d必须不同,如果配置其他从机,注意修改1d
server-id=3
#中继日志名,默认XXXXXXXXXXXX-relay-bin
#relay-log=relay-bin

重启mysql

docker restart mysql-slave1
docker restart mysql-slave2

step4:在从机上配置主从关系:

#在从机上执行以下  SQL操作 先进入从机容器mysql才能进行sql操作
CHANGE MASTER TO MASTER_HOST='1',
MASTER_USER='mysql_slave',MASTER_PASSWORD='123456',MASTER_PORT=3316,
MASTER_LOG_FILE='binlog.000004',MASTER_LOG_POS=1351;
#注意替换数据=====>我这里是1351,注意修改,

开始复制
start slave;
下面这个命令不要加";" 如果加了会报个错,不影响最终结果
show slave status\G

成功标准:

在这里插入图片描述

两个从机同样上修改,为了链接远程从机的数据库

docker exec -it (mysql-master) env LANG=C.UTF-8 /bin/bash
mysql -uroot -p
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

停止和重置

–在从机上执行。功能说明:停止I/0线程和SQL线程的操作。

stop slave;

–在从机上执行。功能说明:用于刷除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件。

reset slave;

–在主机上执行。功能说明:删除所有的b1 nglog日志文件,并将日志索引文件清空,重新开始所有新的日志文件。
–用于第一次进行搭建主从库时,进行主库binlog初始化工作:

reset master;

行。功能说明:用于刷除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件。

reset slave;

–在主机上执行。功能说明:删除所有的b1 nglog日志文件,并将日志索引文件清空,重新开始所有新的日志文件。
–用于第一次进行搭建主从库时,进行主库binlog初始化工作:

reset master;

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值