小知识:Docker部署MySQL8集群(一主二从)的实现步骤

一.CentOS7.9安装Docker20

1.安装yum-utils工具

yum install y yumutils

2.设置docker的依赖源

yumconfigmanager addrepo https://download.docker.com/linux/centos/docker-ce.repo

注释:CentOS直接使用yum命令安装的Docker版本为1.13.1属于旧版docker的最后一个版本,所以需要配置一个repo,才能安装新版的Docker-CE(社区版)。Docker-EE(企业版)需收费读者自行了解即可,这里使用CE社区版

3.安装docker

yum y install dockerce

4.查看安装的版本

docker v docker version

%小知识:Docker部署MySQL8集群(一主二从)的实现步骤-猿站网-插图

5. 查看配套设置的版本

yum list installed | grep docker

%小知识:Docker部署MySQL8集群(一主二从)的实现步骤-1猿站网-插图

6.拉取MySQL8镜像

docker pull mysql:8

注解:mysql:5.7代表mysql版本为5.7

查看docker镜像

docker images

%小知识:Docker部署MySQL8集群(一主二从)的实现步骤-2猿站网-插图

二.部署MySQL集群(一主二从)

1.创建主从MySQL的配置及数据文件的存储目录

# 创建主服务的配置目录和数据目录 mkdir p /usr/local/mysqlData/master/cnf mkdir p /usr/local/mysqlData/master/data # 创建1号从服务器的配置目录和数据目录 mkdir p /usr/local/mysqlData/slave/cnf mkdir p /usr/local/mysqlData/slave/data # 创建2号从服务器的配置目录和数据目录 mkdir p /usr/local/mysqlData/slave2/cnf mkdir p /usr/local/mysqlData/slave2/data

创建两个从服务器的配置是因为MySQL配置的server-id不能重复

%小知识:Docker部署MySQL8集群(一主二从)的实现步骤-3猿站网-插图

2.配置主服务器的配置文件

vim /usr/local/mysqlData/master/cnf/mysql.cnf

配置文件如下

[mysqld] ## 设置server_id,注意要唯一 serverid=1 ## 开启binlog logbin=mysqlbin ## binlog缓存 binlog_cache_size=1M ## binlog格式(mixed、statement、row,默认格式是statement) binlog_format=mixed ##设置字符编码为utf8mb4 charactersetserver = utf8mb4 collationserver = utf8mb4_unicode_ci init_connect=SET NAMES utf8mb4 [client] defaultcharacterset= utf8mb4 [mysql] defaultcharacterset= utf8mb4

3.配置从服务器的配置文件

# 1号从服务器 vim /usr/local/mysqlData/slave/cnf/mysql.cnf # 2号从服务器 vim /usr/local/mysqlData/slave2/cnf/mysql.cnf

配置文件如下(1号的server-id设置为2,2号的server-id设置为3,不重复即可)

[mysqld] ## 设置server_id,注意要唯一 serverid=2 ## 开启binlog logbin=mysqlslavebin ## relay_log配置中继日志 relay_log=edumysqlrelaybin ## 如果需要同步函数或者存储过程 log_bin_trust_function_creators=true ## binlog缓存 binlog_cache_size=1M ## binlog格式(mixed、statement、row,默认格式是statement) binlog_format=mixed ##设置字符编码为utf8mb4 charactersetserver = utf8mb4 collationserver = utf8mb4_unicode_ci init_connect=SET NAMES utf8mb4 slave_skip_errors=1062 [client] defaultcharacterset= utf8mb4 [mysql] defaultcharacterset= utf8mb4

4.创建主从MySQL镜像

# 主服务器实例化 docker run itd p 3307:3306name master v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d v /usr/local/mysqlData/master/data:/var/lib/mysql e MYSQL_ROOT_PASSWORD=123456 mysql:8 # 1号从服务器实例化 docker run itd p 3308:3306name slaver v /usr/local/mysqlData/slave/cnf:/etc/mysql/conf.d v /usr/local/mysqlData/slave/data:/var/lib/mysql e MYSQL_ROOT_PASSWORD=123456 mysql:8 # 2号从服务器实例化 docker run itd p 3309:3306name slaver2 v /usr/local/mysqlData/slave2/cnf:/etc/mysql/conf.d v /usr/local/mysqlData/slave2/data:/var/lib/mysql e MYSQL_ROOT_PASSWORD=123456 mysql:8

参数解释

-p 指定容器暴露的端口,宿主机(物理机)端口: docker实例端口

-p 3307:3306 把物理机的3307端口给实例的端口3306端口进行映射

-v 给容器挂载存储卷,挂载到容器的某个目录

-v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d 把刚创建的配置文件夹映射成实例的/etc/mysql/conf.d

-v /usr/local/mysqlData/master/data:/var/lib/mysql 数据文件夹的映射

-e 指定环境变量,容器中可以使用该环境变量

-e MYSQL_ROOT_PASSWORD=123456 设置MySQL的root账号密码为123456

5.查看已创建的实例

docker ps a

%小知识:Docker部署MySQL8集群(一主二从)的实现步骤-4猿站网-插图

6.创建mysql连接用户

# 创建用户 reader设置密码为reader CREATE USER reader IDENTIFIED BY reader; # 给予reader同步权限 GRANT REPLICATION SLAVE ON *.* to reader@%; FLUSH PRIVILEGES;

注解:其余的用户,远程连接的自行设置

7.获取主服务器的连接信息

# MySQL的连接信息 SHOW MASTER STATUS; #新开连接 获取master实例的在docker的地址 docker inspect format={{.NetworkSettings.IPAddress}} master

%小知识:Docker部署MySQL8集群(一主二从)的实现步骤-5猿站网-插图

从服务器连接主服务器(两台从服务器均是以下操作)

# 配置连接的参数 change master to master_host=172.17.0.2,master_user=reader,master_password=reader,master_log_file=mysql-bin.000003,master_log_pos=2259; # 启动同步 start slave; # 查看是否成功 show slave status\G # 两项都为Yes时代表成功。 # Slave_IO_Running: Yes # Slave_SQL_Running: Yes # 失败需要使用停止连接后检查其他账号密码,地址,pos等参数 # 停止连接,如果一次成功无需使用该命令 stop slave;

%小知识:Docker部署MySQL8集群(一主二从)的实现步骤-6猿站网-插图

三.结果

主服务器执行命令

SHOW SLAVE HOSTS;

%小知识:Docker部署MySQL8集群(一主二从)的实现步骤-7猿站网-插图

能从主服务器查询到两台从服务器的ID以及端口。完成MySQL部署。

到此这篇关于Docker部署MySQL8集群(一主二从)的实现步骤的文章就介绍到这了,更多相关Docker部署MySQL8集群内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

原文链接:https://blog.csdn.net/qq_37181910/article/details/118905118

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Docker中数据卷(volume)管理的两种方式

2023-3-20 17:28:46

建站知识

小知识:用docker部署RabbitMQ环境的详细介绍

2023-3-20 17:43:43

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索