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

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.xdnf.cn/news/148198.html

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

相关文章

C++11新特性和扩展(1)

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 C11新特性和扩展 收录于专栏 [C进阶学习] 本专栏旨在分享学习C的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1.C11简介 2. 列表初始…

数据转换器——佛朗哥Chater2

【注:本文基于《数据转换器》一书进行学习、总结编撰,适合新手小白进行学习】 目录 2.1 数据转换器类别 2.2 工作条件 2.3 转换器性能参数 2.3.1 基本特性参数 2.4 静态性能参数 2.5 动态性能参数 2.6 数字和开关性能参数 2.1 数据转换器类别 转换器类型可以被分为两…

JUC高并发编程1:JUC概述

1 什么是JUC 1.1 JUC简介 JUC就是 java.util .concurrent 工具包的简称。这是一个处理线程的工具包,JDK 1.5 开始出现的。 1.2 进程与线程 进程(Process)和线程(Thread)是操作系统中用于实现多任务处理的两种基本概…

python爬虫案例——抓取链家租房信息

文章目录 1、任务目标2、分析网页3、编写代码1、任务目标 目标站点:链家租房版块(https://bj.lianjia.com/zufang/) 要求:抓取该链接下前5页所有的租房信息,包括:标题、详情信息、详情链接、价格 如: 2、分析网页 用浏览器打开链接,按F12或右键检查,进入开发者模式;因…

spring 代码执行(CVE-2018-1273) 靶场攻略

靶场环境 vulhub/spring/CVE-2018-1273 漏洞复现 1.访问靶场地址 2.填写注册信息,bp抓包 3.添加poc username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch /tmp/zcc")]&password&repeatedPassword 4.…

红黑树:强大的数据结构之插入详解,附图

一、红黑树概述 红黑树是一种自平衡二叉查找树,具有以下性质:节点要么是红色要么是黑色;根节点是黑色;每个叶子节点(NIL 节点)是黑色;每个红色节点的两个子节点都是黑色;从任一节点到…

Matlab|考虑柔性负荷的综合能源系统低碳经济优化调度

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序主要实现的是考虑柔性负荷的综合能源系统低碳经济优化调度,模型参考《考虑柔性负荷的综合能源系统低碳经济优化调度》,求解方法采用的是混合整数规划算法,通过matlabc…

C++_23_STL容器

文章目录 STL容器概念常用容器A string作用构造函数基本赋值操作获取字符串长度存取字符操作拼接操作查找和替换注意:查找是不存在返回-1比较操作截取操作插入与删除string与char * 转换 B vector概述与数组区别迭代器构造函数赋值操作插入与删除取值操作大小相关存储自定义类型…

【逐行注释】扩展卡尔曼滤波EKF和粒子滤波PF的效果对比,MATLAB源代码(无需下载,可直接复制)

文章目录 总述源代码运行结果改进方向总述 本代码使用 M A T L A B MATLAB MATL</

用c++实现分数(fraction)类

这个想法已经有3周&#xff0c;于是今天将它实现了。 Step 1基础&#xff1a; 我们需要定义一个class——fraction&#xff0c;全部属性定义为public class fraction{ public:}; 现在&#xff0c;让我们添加2个元素&#xff0c;分子和分母——fz和fw Step 1.1添加分子分母…

Linux C++ 开发9 - 手把手教你使用gprof性能分析工具

1. 什么是gprof&#xff1f;2. gprof的用法 2.1. 编译程序2.2. 运行程序2.3. 生成分析报告2.4. gprof常用参数说明2.5. 分析报告解读 2.5.1. Flat profile 各个字段的含义2.5.2. Call graph 各个字段的含义 3. Demo演示 3.1. demo04.cpp 源码3.2. 编译、运行和分析3.3. 查看分…

快速搭建Kubernetes集群

快速搭建Kubernetes集群 1 MacOS 1.1 下载 从 docker 下载 docker-desktop (opens new window)&#xff0c;并完成安装 1.2 启用 k8s 集群 启动 docker-desktop&#xff0c;打开preference 面板 切换到 Kubernetes 标签页&#xff0c;并勾选启动 Enable Kubernetes&#xff0c;…

个人防护装备检测系统源码分享

个人防护装备检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

vcruntime140_1.dll无法继续执行代码的6种解决方法

在计算机编程和软件开发中&#xff0c;我们经常会遇到各种错误和问题。其中&#xff0c;vcruntime140_1.dll无法继续执行代码是一个常见的问题。这个问题可能会导致程序崩溃&#xff0c;影响我们的工作进度。因此&#xff0c;了解这个问题的原因以及如何解决它是非常重要的。 …

BOM【JavaScript】

BOM&#xff08;Browser Object Model&#xff09;是浏览器对象模型的缩写&#xff0c;它允许JavaScript与浏览器进行交互。BOM 提供了与浏览器窗口和框架相关的对象&#xff0c;使得开发者可以操作浏览器的各种功能。 BOM 的一些关键组成部分包括&#xff1a;window 对象表示…

文章结构元素分析系统源码分享

文章结构元素分析检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

【Joint Receiver Design for ISAC】Neyman person | Gaussian | MMSE estimator |

【1】统计信号处理 Neyman-Pearson criterion pp 425 【1】 R c E { g x ( n ) x ( n ) H g H } σ 2 I g g H σ 2 I , \mathbf{R}_c\mathbf{E}\{\mathbf{g}x(n)x(n)^H\mathbf{g}^H\}\sigma^2\mathbf{I}\mathbf{g}\mathbf{g}^H\sigma^2\mathbf{I}, Rc​E{gx(n)x(n)HgH}σ2…

Linux C# Day4

作业&#xff1a; 1.统计家目录下.c文件的个数 #!/bin/bash num0 for filename in ls ~/*.c do((num)) done echo $num2.定义一个稀疏数组(下标不连续)&#xff0c;写一个函数&#xff0c;求该稀疏数组的和&#xff0c;要求稀疏数组中的数值通过参数传递到函数中arr([2]9 [4…

【高中生讲机器学习】19. 各种经典聚类算法,一篇带你过完!(上)

创建时间&#xff1a;2024-09-11 首发时间&#xff1a;2024-09-23 最后编辑时间&#xff1a;2024-09-23 作者&#xff1a;Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏&#xff0c;很高兴遇见你~ 我是 Geeker_LStar&#xff0c;一名高一学生&#xff0c;热爱计…

Vue3(二)计算属性Computed,监视属性watch,watchEffect,标签的ref属性,propos属性,生命周期,自定义hook

文章目录 一 、计算属性1. 简写2. 完整写法 二、监视watch1. 监视【ref】定义的【基本类型】数据2. 监视【ref】定义的【对象类型】数据3. 监视【reactive】定义的【对象类型】数据4. 监视【ref】或【reactive】定义的【对象类型】数据中的某个属性5. 监视多个数据总结 三、wat…