Linux下部署MySQL8.0集群 - 一主两从模式(主从复制)

目录


一、部署前准备

1、查看系统信息
# 查看系统版本
cat /etc/red*
# 查看系统位数
getconf LONG_BIT
[root@localhost ~]# cat /etc/red*
CentOS Linux release 7.5.1804 (Core) 
[root@localhost ~]# getconf LONG_BIT
64
2、下载对应安装包

进入MySQL官网:https://dev.mysql.com/downloads/mysql/

可以选择一个自己需要的版本下载,我这里会使用MySQL8.0.37,使用Linux-Generic(通用包),可以先在自己开发机器上直接下载然后上传到Linux服务器中。

在这里插入图片描述

3、准备三台服务器

一主两从会使用到三台Linux服务器。

182.168.40.142 (master节点)
182.168.40.141 (slave1节点)
182.168.40.140 (slave2节点)
4、上传安装包到三台服务器
这里自己上传即可,统一上传到一个目录路径即可,方便后续操作,我这里会放在/data/soft目录下

二、开始部署(基础部署,主从部署先要完成基础部署,该部分操作需要在所有节点执行)

rpm -qa | grep mariadb 查找mariadb的版本名称(和MySQL冲突,会导致MySQL的3306端口监听不到):如果存在文件,使用rpm -e --nodeps 安装包 删除

主节点和从节点部署其实都差不多,我这里使用xshell操作Linux服务器可以直接将命令同步到所有会话,如果没有类似的工具就只能独立执行。

在这里插入图片描述

1、将安装包解压并且移动到目标安装目录

注意:这里的文件是.xz文件,如果你下载的文件是**.tar.gz文件的话用 :tar -zxvf +文件命令

进入安装包存放目录,我这里是cd /data/soft
tar -Jxvf mysql-8.0.37-linux-glibc2.12-x86_64.tar.xz

不带tar.xz后缀的文件就是我们解压后的安装包,我们将安装包重命名为mysql-8.0.37

mv mysql-8.0.37-linux-glibc2.12-x86_64 /usr/local/mysql-8.0.37
2、编译配置文件my.cnf

这个文件一般是默认存在的,不需要自己手动创建,mysql在初始化是会去寻找这个配置文件,如果没有有则是默认的系统配置

在/etc文件夹下配置my.cnf文件,没有就创建

vim /etc/my.cnf

添加以下参数:

PS:其中有个server-id参数每个节点不能重复,需要独立配置,这一步先不做调整,在后续会进行独立修改。
[mysqld]
#设置3306端口
port=3306 
#socket=/tmp/mysql.sock
 
#设置mysql的安装目录
basedir=/usr/local/mysql-8.0.37
#   
#设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql-8.0.37/data     
#允许最大连接数/
max_connections=10000
 
#允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10

#服务ID(不允许重复,推荐使用该服务器ip后几位)
server-id =142

#是否只读,1代表只读,0代表读写,从库建议设置成只读 SUPER权限可无视该规则(比如root账号)
read-only=0

#      
#服务端使用的字符集默认为UTF8
#character-set-server=UTF8
#       
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
     
#默认使用“caching_sha2_password”插件认证
 
default_authentication_plugin=caching_sha2_password  
#         
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8                
[client]
#设置mysql客户端连接服
Kubernetes(k8s)是个用于自动化部署、扩展和管理容器化应用程序的开源平台。MySQL个流行的关系型数据库管理系统。在Kubernetes上部署MySQL8.0集群意味着在该平台上使用容器化的方式来管理MySQL数据库,集群种数据库复制的架构,用于提高数据库的可用性和性能。 要在Kubernetes上部署MySQL8.0集群,首先需要创建个包含MySQL8.0镜像的容器,并定义相应的Pod和Service。然后可以使用Kubernetes的Deployment和StatefulSet等资源对象来定义MySQL集群部署配置。可以通过定义多个Replica来实现数据库的水平扩展,同时可以使用Kubernetes的存储卷来实现数据的持久化存储,并通过Service来实现集群内部和外部的访问。 Kubernetes提供了些工具和资源对象,如PersistentVolume(PV)、PersistentVolumeClaim(PVC)等,可以帮助用户管理数据库的持久化存储。此外,Kubernetes还提供了些网络策略和服务发现的功能,可以帮助用户实现容器间的通信和负载均衡。 通过使用Kubernetes的灵活性和强大的管理能力,可以方便地部署和管理MySQL8.0集群,实现高可用性和高性能的数据库服务。同时,Kubernetes的自动扩展和自愈能力也可以帮助用户实现数据库集群的自动化管理,提高运维效率。因此,Kubernetes是个理想的平台,用于部署和管理MySQL8.0集群
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

꯭ 瞎꯭扯꯭蛋꯭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值