828华为云征文 | 云服务器Flexus X实例,Docker集成搭建Mysql集群

news2024/9/24 0:37:07

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建Mysql集群

MySQL 集群是一种高可用性、高性能的数据库解决方案,旨在支持分布式应用程序,允许多个 MySQL 实例以集群的方式共同工作,提供数据冗余和故障恢复能力

搭建Mysql集群

华为云放行端口3666和3667

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1、购买华为云 Flexus X 实例

Flexus云服务器X实例-华为云 (huaweicloud.com)

2、安装docker,并检查安装版本(此处我已安装不做演示)

curl -fsSL https://get.docker.com | bash
docker -version

在这里插入图片描述

3、拉取Mysql镜像

docker pull mysql:5.7 

在这里插入图片描述

4、创建所需目录,在容器外创建用于存储日志、数据和配置文件的目录。这些目录会在容器运行时被挂载,确保数据持久化

  • /mysql-master/log:用于存放 MySQL 日志文件
  • /mysql-master/data:用于存放 MySQL 数据库文件
  • /mysql-master/conf:用于存放 MySQL 配置文件
mkdir -p /mysql-master/log
mkdir -p /mysql-master/data
mkdir -p /mysql-master/conf

在这里插入图片描述

5、运行 MySQL 容器,使用以下命令运行 MySQL 容器。这里将容器的 3306 端口映射到主机的 3666 端口,并挂载了之前创建的目录

docker run -itd -p 3666:3306 --name mysql-master -v /mysql-master/log:/var/log/mysql -v /mysql-master/data:/var/lib/mysql -v /mysql-master/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=password --privileged=true mysql:5.7

在这里插入图片描述

6、检查是否部署成功docker ps查看,有mysql说明部署成功

docker ps

在这里插入图片描述

  • 如上如果部署失败docker ps会看不到mysql,需要查看日志,然后根据日志给出的报错提示修改,多半是文件没有创建,根据要求创建对应文件即可
docker logs mysql-master

7、mysql配置主节点文件配置

vim /mysql-master/conf/my.cnf
[mysqld]
server_id=101
binlog-ignore-db=mysql
log-bin=mall-mysql-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
character-set-server=utf8

在这里插入图片描述

8、从节点上创建用于 MySQL 从节点的日志、数据和配置文件目录

mkdir -p /mysql-master/log
mkdir -p /mysql-master/data
mkdir -p /mysql-master/conf
docker run -itd -p 3666:3306 --name mysql-master -v /mysql-master/log:/var/log/mysql -v /mysql-master/data:/var/lib/mysql -v /mysql-master/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=password --privileged=true mysql:5.7

9、主节点上创建用于 MySQL 从节点的日志、数据和配置文件目录

mkdir -p /mysql-slave/log
mkdir -p /mysql-slave/data
mkdir -p /mysql-slave/conf
docker run -itd -p 3667:3306 --name mysql-slave -v /mysql-slave/log:/var/log/mysql -v /mysql-slave/data:/var/lib/mysql -v /mysql-slave/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=password --privileged=true --link mysql-master:mysql-master mysql:5.7
  • 端口映射:将宿主机的 3667 端口映射到容器的 3306 端口。
  • 数据挂载:将日志、数据和配置文件目录挂载到容器内部,保证数据持久化。
  • 环境变量:设置 MySQL 根用户的密码为 password
  • –link:使从节点能够连接到主节点 mysql-master,并将其映射为主机名 mysql-master

在这里插入图片描述
10、查看容器状态

docker ps

在这里插入图片描述

11、mysql配置主节点和从节点配置

  • mysql配置主节点文件配置
vim /mysql-master/conf/my.cnf
[mysqld]
server_id=101
binlog-ignore-db=mysql
log-bin=mall-mysql-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
character-set-server=utf8
  • mysql配置从节点文件配置
vim /mysql-slave/conf/my.cnf
[mysqld]
server_id=102
binlog-ignore-db=mysql
log-bin=mall-mysql-slave1-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
relay_log=mall-mysql-relay-bin
log_slave_updates=1
read_only=1
character-set-server=utf8

在这里插入图片描述

12、进入mysql容器,连接到 MySQL 主节点

docker exec -it mysql-master bash
mysql -uroot -ppassword -h 60.204.147.160 -P 3666

mysql: 调用 MySQL 客户端。

-uroot: 指定使用 root 用户连接数据库。

-ppassword: 指定 root 用户的密码为 password-p 后面没有空格)

-h 123.249.27.118: 指定要连接的主节点的 IP 地址。

-P 3666: 指定 MySQL 服务监听的端口号(这里是 3666

在这里插入图片描述

  • 主服务器如下进行mysql操作创建一个新的 MySQL 用户(slave),并授予其执行主从复制所需的权限。然后,通过刷新权限,确保这些更改能立即生效,以便用户能够开始使用这些权限

在这里插入图片描述

13、进入mysql容器,连接到 MySQL 从节点

docker exec -it mysql-master bash
mysql -uroot -ppassword -h 60.204.147.160 -P 3667
  • 配置主服务器信息
change master to 
master_host='60.204.147.160', 
master_user='slave', 
master_password='123456', 
master_port=3666,
master_log_file='mall-mysql-bin.000001',
master_log_pos=761, 
master_connect_retry=30;
start slave;
  • master_host: 指定主服务器的 IP 地址或主机名。在你的例子中,主服务器的 IP 地址是 123.249.27.118

  • master_user: 用于连接主服务器的用户名。在这里使用的是 slave 用户。

  • master_password: 用于连接主服务器的密码,这里是 123456

  • master_port: 主服务器的端口号,默认情况下 MySQL 使用 3306,这里使用的是 3666

  • master_log_file: 指定主服务器的二进制日志文件名,用于同步数据。这通常是从主服务器执行 SHOW MASTER STATUS; 获取的。

  • master_log_pos: 指定在二进制日志文件中的位置,表示从哪个位置开始复制数据。这个值也来自于 SHOW MASTER STATUS;

  • master_connect_retry: 当从服务器无法连接到主服务器时,重试连接的时间间隔(秒)。这里设置为 30 秒

  • 执行 START SLAVE; 命令后,从服务器将开始与主服务器的连接,并开始复制数据

在这里插入图片描述

14、从服务器如下进行mysql操作创建一个新的 MySQL 用户(slave),并授予其执行主从复制所需的权限。然后,通过刷新权限,确保这些更改能立即生效,以便用户能够开始使用这些权限

在这里插入图片描述

15、启动复制进程

START SLAVE;

16、检查状态

Slave_IO_Running

  • 值为 Yes: 表示从服务器的 I/O 线程正在运行,并且能够成功连接到主服务器,正在接收来自主服务器的二进制日志事件。

  • 值为 No: 表示 I/O 线程没有运行,可能由于无法连接到主服务器或存在其他错误。

Slave_SQL_Running

  • 值为 Yes: 表示从服务器的 SQL 线程正在运行,能够成功处理接收到的日志事件并将其应用到从数据库中。
  • 值为 No: 表示 SQL 线程没有运行,可能是因为处理日志事件时遇到了错误或其他原因

如果这两个状态都为 Yes,说明主从复制配置正常,从服务器正在有效地接收和执行来自主服务器的更新

SHOW SLAVE STATUS\G;

在这里插入图片描述

总结

在这里插入图片描述

华为云的Flexus X实例,不仅是为了其卓越的性能和稳定性,更因为其性价比极高的服务,在搭建MySQL集群的过程中,我体验到了云计算与Docker容器技术的无缝结合,这使得我的数据库管理和运维变得更加高效,在这个过程中,我深刻体会到持续学习的重要性,如果有志于提升运维技能的小伙伴们,可以考虑一起购买华为云的Flexus X实例,共同探讨和学习更多关于云计算和容器化的实践经验,此外,当前正值华为云828大促,性价比极高的云服务为我们提供了绝佳的学习机会!

华为云828 Flexus X实例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2158898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计之:基于微信小程序的中药材科普系统(源码+文档+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

优青博导团队指导-实验设计、实验结果分析、测序分析及SCI论文辅助

组蛋白甲基化修饰工具(H3K4me3 ChIP-seq) 组蛋白甲基化类型也有很多种,包括赖氨酸甲基化位点H3K4、H3K9、H3K27、H3K36、H3K79和H4K20等。组蛋白H3第4位赖氨酸的甲基化修饰(H3K4)在进化上高度保守,是被研究最多的组蛋白修饰之一。 DNA亲和纯化测序 DNA亲…

【小bug】使用 RestTemplate 工具从 JSON 数据反序列化为 Java 对象时报类型转换异常

起因:今天编写一个请求时需要通过RestTemplate调用外部接口,获取一些信息,但是在获取了外部接口响应内容后,使用强制转换发现报了类型转换异常。之前也遇到过,但是没记录下来,今天又查了一遍……干脆记录一…

Algo-Lab 2 Stack Queue ADT

Lab 2: Stack & Queue ADT Part 1 ​ 这里只说一下最小栈的思路,我们可以在定义一个栈,来同步存储当前情况下的占的最小值。最小栈第一时间的想法可能是设定一个变量,每次push进来栈中的元素进行对比,保持最小值,…

Redis渐进式遍历

我们知道,keys* 是一次性把所有的key都获取到,这个操作太危险,可能会一次性得到太多的key而阻塞服务器。但是通过渐进式遍历,既能够获取到所有的key,又能不会卡死服务器。 redis使用scan命令进行渐进式遍历&#xff0…

宠物去浮毛救星?希喂、小米、霍尼韦尔宠物空气净化器哪款好用

怎么有人放假也不开心? 快到的国庆假期真是愁死我了...本来我妈国庆去旅游,我就打算不回家,和我家猫过二人世界。结果突然有事,我妈取消出行,改成让我假期回家陪她。我回家容易,我家猫回去可难啊&#xff…

前端-js例子:todolist

实现效果图&#xff1a; 实现步骤&#xff1a; 1.body部分 1.首先&#xff0c;设置输入数据的框和按钮进行操作 2.设置一个表格标签&#xff08;有边框&#xff09;&#xff0c;首先在表头放置两列&#xff08;“事项”‘’操作&#xff09; <body><div class"…

初学者怎么入门大语言模型(LLM)?看完这篇你就懂了!

当前2024年&#xff0c;LLM领域发展日新月异&#xff0c;很多新的实用技术层出不穷&#xff0c;个人认为要跟上LLM的发展&#xff0c;需要掌握以下内容&#xff0c;并需要不断地跟踪学习。 入门LLM前置基础 深度学习基础知识&#xff1a;推荐李宏毅的深度学习课程Python和num…

数据结构2——单链表

目录 1.链表 1.1链表的概念及结构 1.2 链表的分类 ​编辑2.无头单链表的实现 1. 节点 2.遍历链表 3.动态增加新节点 4.查找&#xff08;修改&#xff09; 5.插入 5.1 尾插 5.2 头插 5.3 在pos之前插入x 5.4 在pos之后插入x 6.删除 6.1 尾删 6.2 头删 6.3 删除…

DPDK 简易应用开发之路 4:基于Pipeline模型的DNS服务器

本机环境为 Ubuntu20.04 &#xff0c;dpdk-stable-20.11.10 使用scapy和wireshark发包抓包分析结果 完整代码见&#xff1a;github Pipeline模型 DPDK Pipeline模型是基于Data Plane Development Kit&#xff08;DPDK&#xff09;的高性能数据包处理框架。它通过将数据流分为多…

基于SpringBoot+Vue+MySQL的旅游推荐管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着社会的快速发展和人民生活水平的显著提高&#xff0c;旅游已成为人们休闲娱乐的重要方式。然而&#xff0c;面对海量的旅游信息和多样化的旅游需求&#xff0c;如何高效地管理和推荐旅游资源成为了一个亟待解决的问题。因此…

学习记录:js算法(四十三):翻转二叉树

文章目录 翻转二叉树我的思路网上思路递归栈 总结 翻转二叉树 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点 图一&#xff1a; 图二&#xff1a; 示例 1&#xff1a;&#xff08;如图一&#xff09; 输入&#xff1a;root [4,2,7,1…

大模型价格战,打到了负毛利,卷or不卷?

国产大模型淘汰赛在加速。这轮淘汰赛会持续一两年&#xff0c;只有少数真正具备实力的基础模型企业能继续活下去 中国市场的大模型价格战已经打了近半年。这轮价格战已经打到了负毛利&#xff0c;而且暂时没有停止迹象。头部云厂商仍在酝酿新一轮降价。这轮降价会在今年9月下旬…

视频单目标跟踪研究

由于对视频单目标跟踪并不是很熟悉&#xff0c;所以首先得对该领域有个大致的了解。 视频目标跟踪是计算机视觉领域重要的基础性研究问题之一&#xff0c;是指在视频序列第一帧指定目标 后&#xff0c;在后续帧持续跟踪目标&#xff0c;即利用边界框&#xff08;通常用矩形框表…

printf 命令:格式化输出

一、命令简介 ​printf​ 命令在 Linux 系统中用于格式化并打印字符串到标准输出。它是 C 语言中 printf ​函数的命令行版本&#xff0c;因此其格式化选项与 C 语言中的非常相似。 相关命令&#xff1a; echo&#xff1a;通常使用 echo&#xff0c;它比较简单。printf&…

你们用过微信CRM管理系统吗?

微信CRM管理系统是近年来流行的管理软件&#xff0c;在市场上得到了很高的认可。许多企业正在应用微信CRM管理系统&#xff0c;那系统具体有些什么功能呢&#xff1f; 1、聚合聊天&#xff0c;可以管理多个微信号 2、批量多号自动加好友任务&#xff0c;设置好时间间隔以及加人…

《论软件系统架构风格》写作框架,软考高级系统架构设计师

论文真题 系统架构风格&#xff08;System Architecture Style&#xff09;是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义了一个词汇表和一组约束&#xff0c;词汇表中包含一些构件和连接件类型&#xff0c;而这组约束指出系统是如何将这些构件和连接件组合起…

李沐对大模型趋势的几点判断,小模型爆发了!

李沐是上海交通大学 2011 届计算机科学与工程系本硕系友。他曾担任亚马逊资深首席科学家&#xff0c;加州大学伯克利分校和斯坦福大学的访问助理教授&#xff0c;是前 Marianas Labs 联合创始人&#xff0c;深度学习框架 Apache MXNet 的创始人之一。目前是 BosonAI 联合创始人…

C++之STL—string容器

本质&#xff1a;类 class 封装了很多方法&#xff1a;查找find&#xff0c;拷贝copy&#xff0c;删除delete 替换replace&#xff0c;插入insert 构造函数 赋值操作 assign&#xff1a; 字符串拼接 &#xff0b; append&#xff1a; string查找和替换 没查找到&#xff0c;po…

【刷题2—滑动窗口】最大连续1的个数lll、将x减到0的最小操作数

目录 一、最大连续1的个数lll二、将x减到0的最小操作数 一、最大连续1的个数lll 题目&#xff1a; 思路&#xff1a; 问题转换为&#xff1a;找到一个最长子数组&#xff0c;这个数组里面0的个数不能超过k个 定义一个变量count&#xff0c;来记录0的个数&#xff0c;进窗口、…