MySQL 集群

本文介绍了MySQL集群的基本概念,包括管理节点、SQL节点和存储节点的角色。阐述了使用MySQL集群的优势,如提高处理能力、数据备份和高可用性,以及劣势,如成本增加和运维复杂性。详细步骤演示了在RHEL Server6.1环境下搭建MySQL集群的过程,涉及各个节点的配置和操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 MySQL集群简介


上一篇文章我们提到MySQL 读写分离,这篇文章我们讲解MySQL集群。我们提到的集群,是指多台机器完成一个工作,最主要的场景是数据库服务器和Web服务器,但是集群环境不适合大规模计算。前面我们有提到MySQL AB复制,因为MySQL AB复制不适合大规模运用,要解决这个问题,我们可以使用MySQL集群。

 

MySQL集群分为三类节点:管理节点、SQL节点、存储节点。管理节点的功能是管理其他节点,负责调度不同的SQL节点和存储节点。SQL节点作用是用户和该节点进行交互,用户发送SQL语句到该节点,进行读写请求。存储节点负责到磁盘中读数据和写数据。MySQL集群中采用一种特殊存储引擎,名叫NDB。NDB负责对数据进行读写,并保证节点之间的数据一致性,存储节点没有必要使用共享存储,因为第一存储节点本身的数据互为镜像,本身已经对数据做了备份。其中,管理节点只需要一个,SQL节点根据业务需要可以有多个,存储节点同理。

 

二 MySQL集群示意图


      

图片来源:http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-overview.html

 

三 使用MySQL集群的优劣


3.1 优势

1.处理业务能力大幅提高;

2.用户关注的点更集中于业务;

3.数据不易丢失,因为存储节点对数据做备份。当然不要完全依靠MySQL集群,制定合理的备份和恢复策略还是很有必要的;

4.在SQL节点有多台的情况下,一台SQL节点宕机不影响,只需要开发人员手动判断该节点是否在线,不在线切换到另一台SQL节点上,保证了高可用性。

 

3.2 劣势

1.成本提高,因为MySQL集群至少需要三台服务器;

2.运维难度增强,因为服务器数量增加。

 

四 搭建MySQL环境


4.1 实验环境简介

属性                     IP                           主机名

管理节点           192.168.1.11       mgmd

存储节点           192.168.1.14       ndb01

存储节点           192.168.1.15       ndb02

SQL节点           192.168.1.12        sql01

SQL节点           192.168.1.13        sql02


 

MySQL集群网络拓扑图

4.2 操作系统版本

RHEL Server6.1 64位系统

 

4.3 使用到的软件包版本

mysql-cluster-gpl-7.1.4b-linux-x86_64-glibc23.tar.gz

 

4.4 准备工作

第一步,拷贝文件

[root@larrywen opt]# scp mysql-cluster-gpl-7.1.4b-linux-x86_64-glibc23.tar.gz 192.168.1.11:/opt/
[root@larrywen opt]# scp mysql-cluster-gpl-7.1.4b-linux-x86_64-glibc23.tar.gz 192.168.1.12:/opt/
[root@larrywen opt]# scp mysql-cluster-gpl-7.1.4b-linux-x86_64-glibc23.tar.gz 192.168.1.13:/opt/
[root@larrywen opt]# scp mysql-cluster-gpl-7.1.4b-linux-x86_64-glibc23.tar.gz 192.168.1.14:/opt/
[root@larrywen opt]# scp mysql-cluster-gpl-7.1.4b-linux-x86_64-glibc23.tar.gz 192.168.1.15:/opt/

 

第二步,修改主机名

[root@serv01 ~]# hostname mgmd.host.com
[root@serv01 ~]# vim /etc/sysconfig/network
[root@serv01 ~]# cat !$
cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mgmd.host.com
[root@serv01 ~]# hostname 
mgmd.host.com

[root@serv02 ~]# hostname sql01.host.com
[root@serv02 ~]# vim /etc/sysconfig/network
[root@serv02 ~]# cat !$
cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=sql01.host.com
[root@serv02 ~]# hostname 
sql01.host.com

[root@serv03 ~]# hostname sql02.host.com
[root@serv03 ~]# vim /etc/sysconfig/network
[root@serv03 ~]# cat !$
cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=sql02.host.com
[root@serv03 ~]# hostname
sql02.host.com

[root@serv04 ~]# hostname ndb01.host.com
[root@serv04 ~]# vim /etc/sysconfig/network
[root@serv04 ~]# cat !$
cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ndb01.host.com
[root@serv04 ~]# hostname 
ndb01.host.com

[root@serv05 ~]# hostname ndb02.host.com
[root@serv05 ~]# vim /etc/sysconfig/network
[root@serv05 ~]# cat !$
cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ndb02.host.com
[root@serv05 ~]# hostname 
ndb02.host.com


第三步,确定IP地址

[root@mgmd ~]# ifconfig | grep eth -A1
eth0      Link encap:Ethernet  HWaddr 00:0C:29:07:DD:3B  
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0

[root@sql01 ~]# ifconfig | grep eth -A1
eth0      Link encap:Ethernet  HWaddr 00:0C:29:6A:EC:97  
          inet addr:192.168.1.12  Bcast:192.168.1.255  Mask:255.255.255.0

[root@sql02 ~]# ifconfig | grep eth -A1
eth0      Link encap:Ethernet  HWaddr 00:0C:29:BD:08:05  
          inet addr:192.168.1.13  Bcast:192.168.1.255  Mask:255.255.255.0

[root@ndb01 ~]# ifconfig | grep eth -A1
eth0      Link encap:Ethernet  HWaddr 00:0C:29:0F:1A:09  
          inet addr:192.168.1.14  Bcast:192.168.1.255  Mask:255.255.255.0

[root@ndb02 ~]# ifconfig | grep eth -A1
eth0      Link encap:Ethernet  HWaddr 00:0C:29:77:CB:2F  
          inet addr:192.168.1.15  Bcast:192.168.1.255  Mask:255.255.255.0

4.5 管理节点搭建

第一步,添加mysql组和用户

[root@mgmd opt]# groupadd -g 27 mysql
[root@mgmd opt]# useradd -u 27 -g 27 -r -M -s /sbin/nologin mysql
[root@mgmd opt]# id mysql
uid=27(mysql) gid=27(mysql) groups=27(mysql)

 

### MySQL 集群搭建与配置教程 #### 一、环境准备 在开始配置之前,需确认已准备好以下条件: - 至少三台服务器(可以是虚拟机),分别作为管理节点、数据节点以及SQL节点。 - 安装并配置好MySQL Cluster软件版本 `mysql-5.7.16` 和 NDB 版本 `ndb-7.5.4`[^1]。 #### 二、下载与安装 按照官方文档指引完成MySQL集群组件的下载工作。具体操作可参考相关说明文档[^2]。通常情况下,可以通过以下命令获取安装包: ```bash wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.5/mysql-cluster-community-management-server_7.5.4-1ubuntu18.04_amd64.deb ``` #### 三、创建用户账户 对于两台主服务器(假设IP地址分别为192.168.x.128和192.168.x.129),登录到MySQL控制台后执行如下语句来创建必要的数据库用户[^3]: ```sql CREATE USER 'repl_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%'; FLUSH PRIVILEGES; ``` #### 四、日志设置与权限调整 为了确保复制功能正常运行,在 `/var/log/` 文件夹下建立名为 `mysql` 的新目录,并在其内部生成 `mysql-bin.log` 日志文件。随后给予适当的操作许可给这些资源以便于后续步骤能够顺利实施[^4]: ```bash sudo mkdir /var/log/mysql/ sudo touch /var/log/mysql/mysql-bin.log sudo chown -R mysql:mysql /var/log/mysql/ sudo chmod -R 755 /var/log/mysql/ ``` #### 五、验证Master状态 最后一步是在每台主机上检验其当前MASTER角色的状态信息。通过输入下面这条指令即可获得所需详情: ```sql SHOW MASTER STATUS\G; ``` 以上即为完整的MySQL集群构建流程概述,涵盖了从初始阶段直至最终测试环节的各项要点。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值