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

news/2024/9/24 1:54:35/

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.ppmy.cn/news/1529592.html

相关文章

如何进入电脑BIOS

前言 在日常使用电脑的过程中,有时我们需要进入BIOS(基本输入输出系统)来调整设置,比如更改启动顺序、调整系统日期时间或是优化硬件配置。BIOS是计算机启动时最先运行的程序之一,它位于主板上的一个ROM芯片中。下面&…

简单接口自动化框架实现(Python+requests+pytest)

1、接口自动化流程 1.需求分析2.挑选需要做自动化测试的功能3.设计测试用例4.搭建自动化测试环境[可选]5.设计自动化测试项目的架构[可选]6.编写代码7.执行测试用例8.生成测试报告并分析结果 2、框架结构 --api -->封装请求 --scripts -->编写测试脚本…

汽车英文单词缩写汇总

缩略词英文全文中文翻译备注ACCAdaptive Cruise Control自适应巡航控制ACCMAir Conditioner Compressor Module空调压缩机模块ASILAutomotive Safety Integrity Level汽车安全完整性等级BOMBill of Materials物料清单CCCChina Compulsory Certification中国强制性产品认证CSDCe…

基于JAVA+SpringBoot+Vue的医院资源管理系统

基于JAVASpringBootVue的医院资源管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 哈…

spring与springmvc整合

文章目录 spring与springmvc整合重复创建bean容器关系获取spring容器上下文 spring与springmvc整合 在项目中使用springmvc的时候,由于spring和springmvc是同源的,有时候大家会把所有的配置都扔到springmvc的配置文件中,而不去区分spring和s…

除了C# 、C++,C++ cli 、还有一个Java版的 db

DB_.java /*****************************************************************************创建时间 :2019年10月28日文件名 :Ldb.cs功能 :基本数据库的访问作者 :李锋Emai…

Hive企业级调优[1]——计算资源配置

目录 企业级调优 计算资源配置 YARN 资源配置 MapReduce 资源配置 企业级调优 计算资源配置 本教程的计算环境为 Hive on MR。计算资源的调整主要包括 YARN 和 MapReduce。 YARN 资源配置 1)YARN 配置说明 需要调整的 YARN 参数均与 CPU、内存等资源有关&am…

开源模型应用落地-qwen模型小试-调用Qwen2-VL-7B-Instruct-更清晰地看世界(一)

一、前言 学习Qwen2-VL ,为我们打开了一扇通往先进人工智能技术的大门。让我们能够深入了解当今最前沿的视觉语言模型的工作原理和强大能力。这不仅拓宽了我们的知识视野,更让我们站在科技发展的潮头,紧跟时代的步伐。 Qwen2-VL 具有卓越的图像和视频理解能力,以及多语言支…