从该小节开始,我们会用 3 节时间讲解如何基于 Linux 搭建配置 MySQL Cluster 集群环境,剩下 4 个小节会简单演示 MySQL Cluster 的日常使用,比如 MySQL Cluster 节点服务的启动与关闭、数据同步测试和节点故障模拟等内容。
接下来,我们会用本地 Linux 虚拟机环境 来进行搭建 MySQL Cluster 集群,那么在设备数量的配备上,我们是这样考虑的,因为要考虑到此次的模拟环境最好是能够贴近生产环境,所以会对 SQL 节点和数据节点上实现节点的冗余,即管理节点 1 台,SQL节点 2 台,数据节点 2 台这样架构(1+2+2)的模式来进行搭建。
那么在 MySQL Cluster 环境搭建之前,我们需要对基础环境进行一些准备和配置。具体内容如下。
- 环境准备:包括选择虚拟机平台、确定操作系统版本、选择MySQL介质。
- 环境配置:包括规划集群环境、网络配置、安全配置、host 配置。
其中, 环境准备中的前 3 步主要是确定了 MySQL Cluster 集群的运行平台和 MySQL Cluster 的版本,环境配置中的 4 步主要是在平台环境准备好之后,需要进行一些简单的配置。
环境准备
选择虚拟机平台
虚拟机软件你可以用 VMware 或者 VirtualBox,我用的是 VMware(关于它的版本无所谓,用 14、15、16 版本都可以)。
确定操作系统版本
我们可以使用 Redhat 或者 CentOS 7,在这里我们使用的是 CentOS 7.9 版本的操作系统。
[root@mysql03 ~]# more /etc/redhat-release CentOS Linux release 7.9.2009 (Core)
确定MySQLCluster介质
在确定操作系统版本之后,接下来我们需要选择此次 MySQL Cluster 的软件版本。
MySQL 的集群组件,虽然目前已经推出了 8.0.28 版本,但在工作中还是用 7 版本更多一些,所以在这里,我们使用 MySQL Cluster 7.6.20 版本来演示。在下载介质时,你需要注意:在进入 MySQL下载界面后,在 Archives 界面才可以找到 MySQL Cluster 7 版本的介质。
同时在介质选择上,官方提供了 tar 包和 rpm 包两种介质,两种方式都可以。不过对于 rpm 包来说,有一些目录没办法进行指定,所以为了在环境配置方面更加灵活,我建议你用 tar 包的方式进行安装配置。
以上就是关于平台和介质的前期准备工作,接下来我们对准备好的基础环境进行一些简单的配置。
环境配置
集群环境规划
具体环境的规划如下:
主机名称 |
IP地址 |
作用 |
mysql03 |
192.168.1.3 |
管理节点 |
mysql04 |
192.168.1.4 |
SQL节点 |
mysql05 |
192.168.1.5 |
SQL节点 |
mysql06 |
192.168.1.6 |
数据节点 |
mysql07 |
192.168.1.7 |
数据节点 |
对于上面的 5 个虚拟机环境,推荐使用如下的配置:内存分配 2GB,CPU 分配 1 核,磁盘空间分配20G。对于网卡,大家使用一个网卡即可,将网卡模式配置为 local 模式。
接下来,我们需要在 VMware 平台下安装 CentOS 操作系统(具体的操作步骤我们就不详解讲解了,这一部分内容非常简单,你可以在网上找到非常多的资料)。
不过我想提醒你:在安装 CentOS 虚拟机时,为了更快地配置好基础环境,可以先安装一个虚拟机环境,然后用克隆的方式复制多个环境。即:安装好一个虚拟机后,将虚拟机关闭,在如下的界面中选择虚拟机-管理-克隆。
在克隆类型选项上,你一定要选择创建完整的克隆,这样克隆出的环境是完全独立的。
以上是关于虚拟机安装方面的几个注意事项,我们重点来讲解一下安装完操作系统后,需要进行的几个配置。
网络配置
我们首先需要对每个虚拟机的网卡信息配置为静态 IP,然后指定每个虚拟机的具体 IP 地址,同时设置网卡信息为随系统自动生效。
[root@mysql03 network-scripts]# more ifcfg-ens32 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no NAME=ens32 DEVICE=ens32 ONBOOT=yes IPADDR=192.168.1.3 NETMASK=255.255.255.0 GETWAY=192.168.1.1
重点要关注 BOOTPROTO=static、ONBOOT=yes、IPADDR=192.168.1.3 三处内容。
安全配置
接下来,我们需要关闭每台虚拟机的防火墙和 selinux,因为如果不关闭防火墙和 selinux的话,会因为存在安全策略导致多个节点之间无法通信,进而导致整个 MySQL Cluster 集群出现异常。
对于默认安装的 CentOS 操作系统,默认防火墙是关闭的,如果没有关闭的话,你可以使用如下的命令关闭,并设置开机不自动启动。
[root@mysql03 ~]# systemctl stop firewalld [root@mysql03 ~]# systemctl disable firewalld
而关闭 selinux 也是 Linux 的一种安全策略,在安装好操作系统后,selinux 服务默认是开启状态,我们可以用如下命令进行关闭。
[root@mysql03 ~]# setenforce 0 setenforce: SELinux is disabled
不过这个命令只是临时性地关闭了selinux,当操作系统重启后,selinux 又会自动开启。为了使其永久关闭,可以修改 selinux 的配置参数,将其禁用掉。具体禁用办法是在其配置文件中将 SELINUX 参数修改为 disabled,如下所示:
[root@mysql03 ~]# more /etc/selinux/config This file controls the state of SELinux on the system. SELINUX= can take one of these three values: enforcing - SELinux security policy is enforced. permissive - SELinux prints warnings instead of enforcing. disabled - No SELinux policy is loaded. SELINUX=disabled SELINUXTYPE= can take one of three values: targeted - Targeted processes are protected, minimum - Modification of targeted policy. Only selected processes are protected. mls - Multi Level Security protection. SELINUXTYPE=targeted
host配置
除此之外,为了在使用虚拟机时更加方便,可以在每台虚拟机上添加主机名和 IP 地址的映射关系。这样在配置环境时,可以直接使用主机名来进行配置,不需要输入具体的 IP 地址了。
[root@mysql03 ~]# more /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.3 mysql03 192.168.1.4 mysql04 192.168.1.5 mysql05 192.168.1.6 mysql06 192.168.1.7 mysql07
以上内容,就是安装 MySQL Cluster 集群的一些基础环境准备,包括了平台、软件版本的确定和环境的基础配置。在下一小节中,我们就开始对 MySQL Cluster 集群环境进行具体的安装配置了,比如如何来配置管理节点、如何来配置数据节点和SQL节点,希望这一讲的内容你能有所收获。