网易首页 > 网易号 > 正文 申请入驻

云服务器Flexus X实例,Docker集成搭建Mysql集群

0
分享至

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

  1. /mysql-master/log:用于存放 MySQL 日志文件
  2. /mysql-master/data:用于存放 MySQL 数据库文件
  3. /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


  1. 如上如果部署失败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

  1. 端口映射:将宿主机的 3667 端口映射到容器的 3306 端口。
  2. 数据挂载:将日志、数据和配置文件目录挂载到容器内部,保证数据持久化。
  3. 环境变量:设置 MySQL 根用户的密码为 password。
  4. --link:使从节点能够连接到主节点 mysql-master,并将其映射为主机名 mysql-master


10、查看容器状态

docker ps


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

  1. 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

  1. 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)


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


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

docker exec -it mysql-master bash

mysql -uroot -ppassword -h 60.204.147.160 -P 3667

  1. 配置主服务器信息

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;

  1. master_host: 指定主服务器的 IP 地址或主机名。在你的例子中,主服务器的 IP 地址是 123.249.27.118。
  2. master_user: 用于连接主服务器的用户名。在这里使用的是 slave 用户。
  3. master_password: 用于连接主服务器的密码,这里是 123456。
  4. master_port: 主服务器的端口号,默认情况下 MySQL 使用 3306,这里使用的是 3666。
  5. master_log_file: 指定主服务器的二进制日志文件名,用于同步数据。这通常是从主服务器执行 SHOW MASTER STATUS; 获取的。
  6. master_log_pos: 指定在二进制日志文件中的位置,表示从哪个位置开始复制数据。这个值也来自于 SHOW MASTER STATUS;。
  7. master_connect_retry: 当从服务器无法连接到主服务器时,重试连接的时间间隔(秒)。这里设置为 30 秒
  8. 执行 START SLAVE; 命令后,从服务器将开始与主服务器的连接,并开始复制数据


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


15、启动复制进程

START SLAVE;

16、检查状态

Slave_IO_Running

  1. 值为 Yes: 表示从服务器的 I/O 线程正在运行,并且能够成功连接到主服务器,正在接收来自主服务器的二进制日志事件。
  2. 值为 No: 表示 I/O 线程没有运行,可能由于无法连接到主服务器或存在其他错误。

Slave_SQL_Running

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

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

SHOW SLAVE STATUS\G;


总结


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

华为云828 Flexus X实例

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
广州队解散,韦世豪被骂:二五仔,这下1分钱都别想 新赛季断腿!

广州队解散,韦世豪被骂:二五仔,这下1分钱都别想 新赛季断腿!

风过乡
2025-01-06 22:49:20
深圳梧桐山网红野猪下崽?市民拍到“一家人整整齐齐”,管理处:天天都有人投喂

深圳梧桐山网红野猪下崽?市民拍到“一家人整整齐齐”,管理处:天天都有人投喂

上游新闻
2025-01-06 12:24:09
莫言:让恶狗不再咬你的方法,不是讨好,而是打不服,就宰了它!

莫言:让恶狗不再咬你的方法,不是讨好,而是打不服,就宰了它!

诗词中国
2025-01-06 12:59:55
3-0!英超争冠乱了:大黑马6连胜追平阿森纳,下轮有望双杀利物浦

3-0!英超争冠乱了:大黑马6连胜追平阿森纳,下轮有望双杀利物浦

体育知多少
2025-01-07 06:18:05
新华社快讯:朝中社7日报道,朝鲜6日向该国东部海域试射中远程弹道导弹

新华社快讯:朝中社7日报道,朝鲜6日向该国东部海域试射中远程弹道导弹

新华社
2025-01-07 05:23:39
再创新高!1月5日胖娟小吃店营业额2115元,阿尔卑斯直播间赢麻了

再创新高!1月5日胖娟小吃店营业额2115元,阿尔卑斯直播间赢麻了

小淇言说
2025-01-06 01:11:57
太难了!网传青岛一注册资本1.38亿宝马4s店疑暴雷,基本“瘫痪”

太难了!网传青岛一注册资本1.38亿宝马4s店疑暴雷,基本“瘫痪”

火山诗话
2025-01-06 17:47:56
太显眼!给周涛讲解的鸡窝头讲解员,生活照被扒出,原来这么美

太显眼!给周涛讲解的鸡窝头讲解员,生活照被扒出,原来这么美

鋭娱之乐
2025-01-05 15:00:08
网友:感动所有人!男子当兵18年退伍,妻子领着他在小区走了一圈

网友:感动所有人!男子当兵18年退伍,妻子领着他在小区走了一圈

火山诗话
2025-01-06 06:55:57
普京宁愿被骂,也要低头主动归还我国领土,唯独1块至今未松口!

普京宁愿被骂,也要低头主动归还我国领土,唯独1块至今未松口!

冬日人物记
2025-01-06 17:41:08
东大的实力其实已经被巴基斯坦,塞尔维亚和伊朗叙利亚证明了。

东大的实力其实已经被巴基斯坦,塞尔维亚和伊朗叙利亚证明了。

沧海一书客
2025-01-04 15:39:37
一觉醒来,中国军团4胜4负!丁俊晖逆转,斯佳辉排第3,名将告急

一觉醒来,中国军团4胜4负!丁俊晖逆转,斯佳辉排第3,名将告急

刘姚尧的文字城堡
2025-01-07 07:59:46
万亿央企总经理,定了!

万亿央企总经理,定了!

鲁中晨报
2025-01-07 00:36:10
卢昱晓妈妈的简历公开,她不是普通口腔医生,而是上海9院的主任

卢昱晓妈妈的简历公开,她不是普通口腔医生,而是上海9院的主任

葡萄说史
2025-01-06 15:26:23
他已任安徽省政协党组副书记,曾在宣城任职

他已任安徽省政协党组副书记,曾在宣城任职

宣城发声
2025-01-06 22:33:25
火箭官方:球队已经将谢泼德下放至G联赛毒蛇队

火箭官方:球队已经将谢泼德下放至G联赛毒蛇队

直播吧
2025-01-07 07:20:26
拒不投降就炸楼!美国万万没想到,朝鲜士兵真把西方打“急”了

拒不投降就炸楼!美国万万没想到,朝鲜士兵真把西方打“急”了

听风者说
2025-01-05 20:40:57
蓝天救援队一队长因病去世,年仅35岁!队友:疑因病毒感染引起发烧,住院近一个月

蓝天救援队一队长因病去世,年仅35岁!队友:疑因病毒感染引起发烧,住院近一个月

鲁中晨报
2025-01-06 23:28:14
从“油腻霸总”到百变笑星,李川在《喜剧大会》完成爆笑升级

从“油腻霸总”到百变笑星,李川在《喜剧大会》完成爆笑升级

最爱酷影视
2025-01-07 10:05:03
段永平说的都是常识,也是人们最不愿意相信的

段永平说的都是常识,也是人们最不愿意相信的

浪浪历险计
2025-01-06 18:32:17
2025-01-07 12:15:00
无线端
无线端
聚焦移动端发展趋势
1746文章数 9188关注度
往期回顾 全部

科技要闻

今年CES,AI唱主角:黄仁勋打头阵

头条要闻

外媒:马克龙首次建议乌克兰考虑在领土问题上作出让步

头条要闻

外媒:马克龙首次建议乌克兰考虑在领土问题上作出让步

体育要闻

广州队解散,一场注定徒劳的自救

娱乐要闻

泰媒曝在缅甸找到中国演员王星,7号移交泰国

财经要闻

重要通知!各地区不得违法开展异地执法

汽车要闻

10万元级无图智驾 悦也PLUS全路况实测

态度原创

手机
旅游
数码
本地
公开课

手机要闻

2024年Q4中国手机市场激活量排名:华为第一 小米第二

旅游要闻

投诉量排名前十!北京16家旅行社被点名

数码要闻

NVIDIA RTX 50系列价格正式公布!549美元起

本地新闻

我和我的家乡|一“津”到底,美在不言中

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版