mysql分布式集群安装

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

概述

MySQL Cluster旨在提供具有高可用性和低延迟的MySQL兼容数据库。 MySQL Cluster技术通过NDB(网络数据库)和NDBCLUSTER存储引擎实现,并为MySQL数据库系统提供无共享群集和自动分片。 在无共享架构中,每个节点都有自己的内存和磁盘,不建议和支持使用NFS,SAN等共享存储。

要实现MySQL Cluster,我们必须安装三种类型的节点。 每个节点类型将安装在它自己的服务器上。

1.管理节点 - NDB_MGMD / MGM

     群集管理服务器用于管理群集的其他节点。 我们可以从管理节点创建和配置群集上的新节点,重新启动,删除或备份节点。

 

2.数据节点 - NDBD / NDB

     这是在节点之间进行同步和数据复制的过程的层。

 

3. SQL节点 - MySQLD / API

     应用程序用于连接到数据库集群的接口服务器。

 

在本教程中,我将指导您完成使用centOS 7安装和配置MySQL群集。我们将配置管理节点,两个数据节点和两个SQL节点。

 

准备

操作系统是CentOS 7 - 64位。

5台CentOS服务器或虚拟机。 我将使用主机名和IP地址,如下所示:

管理节点

db1 = 192.168.1.107

数据节点

db2 = 192.168.1.111

db3 = 192.168.1.109

SQL节点

db4 = 192.168.1.110
 db5 = 192.168.1.112

 

简单起见所有服务直接禁用防火墙

systemctl disable firewalld

systemctl stop firewalld

并且禁用selinux

 

vi /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 these two values:

    #       targeted - Targeted processes are protected,

    #       mls - Multi Level Security protection.

    SELINUXTYPE=targeted

 

 

设置管理节点

第一步是使用CentOS 7 db1和IP 192.168.1. 107创建“管理节点”。 确保以root用户身份登录db1服务器。

 

下载MySQL Cluster软件

我将使用wgetMySQL站点下载它。 我在这里使用的是“Red Hat Enterprise Linux 7 / Oracle Linux 7x86,64位),RPM Bundle”,它与CentOS 7兼容。然后解压缩tar文件。

我将使用wgetMySQL站点下载它。 我在这里使用的是“Red Hat Enterprise Linux 7 / Oracle Linux 7x86,64位),RPM Bundle”,它与CentOS 7兼容。然后解压缩tar文件。

cd~ 
 wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar 
 tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

 

 

安装和删除软件包

在安装MySQL Clusterrpm包之前,需要安装MySQL-Cluster服务器所需的perl-Data-Dumper  在我们安装MySQL Cluster之前你需要删除mariadb-libs 

yum -y install perl-Data-Dumper
 yum -y remove mariadb-libs

安装MySQL Cluster

使用以下rpm命令安装MySQL Cluster软件包:

cd~ 
 yum localinstall MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm  MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm  MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm -y

确保没有错误。又可能需要安装net-tools

Yum install net-tools -y

配置MySQL群集

 

为配置文件创建新目录。 我将使用“/var/lib/mysql-cluster”目录。

mkdir -p /var/lib/mysql-cluster

然后在mysql-cluster目录中为名为“ config.ini ”的集群管理创建新的配置文件。

cd /var/lib/mysql-cluster
 vi config.ini

粘贴以下配置:

[ndb_mgmd default]
 # Directory for MGM node log files
 DataDir=/var/lib/mysql-cluster
  
 [ndb_mgmd]
 #Management Node db1
 HostName=192.168.1.107
  
 [ndbd default]
 NoOfReplicas=2      # Number of replicas
 DataMemory=256M     # Memory allocate for data storage
 IndexMemory=128M    # Memory allocate for index storage
 #Directory for Data Node
 DataDir=/var/lib/mysql-cluster
  
 [ndbd]
 # db2
 HostName=192.168.1.111
  
 [ndbd]
 # db3
 HostName=192.168.1.109
  
 [mysqld]
 #SQL Node db4
 HostName=192.168.1.115
  
 [mysqld]
 #SQL Node db5
 HostName=192.168.1.112

保存文件并退出。

 

启动管理节点

接下来使用以下命令启动管理节点:


 ndb_mgmd --config-file=/var/lib/mysql-cluster/config.ini

结果应该类似于:

MySQL Cluster Management Server mysql-5.6.28 ndb-7.4.10

2018-08-16 03:00:47 [MgmtSrvr] INFO     -- The default config directory '/usr/mysql-cluster' does not exist. Trying to create it...

2018-08-16 03:00:47 [MgmtSrvr] INFO     -- Sucessfully created config directory

 

管理节点已启动,现在您可以使用命令ndb_mgm来监视节点:

 

ndb_mgm
 show

 

设置MySQL群集数据节点

我们将使用2CentOS服务器作为数据节点。

  1. db2 = 192.168.1.111

  2. db3 = 192.168.1.109

 

 

root用户身份登录并下载MySQL Cluster软件

使用ssh登录到db2服务器:

然后下载MySQL Cluster包并解压缩:

cd ~
 wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
 tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

安装和删除软件包

安装perl-Data-Dumper并删除mariadb-libs:

yum -y install perl-Data-Dumper
 yum -y remove mariadb-libs

.安装MySQL Cluster

现在我们可以使用这些rpm命令为数据节点安装MySQL Cluster包:

cd~ 
 yum localinstall MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm  MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm  MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm -y

确保没有错误。

配置数据节点

使用vi编辑器在etc目录中创建一个新配置文件:


 vi /etc/my.cnf

粘贴配置如下:

[mysqld]
 ndbcluster
 ndb-connectstring=192.168.1.107     # IP address of Management Node
  
 [mysql_cluster]
 ndb-connectstring=192.168.1.107     # IP address of Management Node

保存文件并退出。

然后为我们在管理节点配置文件“config.ini”中定义的数据库数据创建新目录。

 mkdir -p /var/lib/mysql-cluster

现在启动数据节点ndbd:

ndbd

DB3如法炮制

操作完回管理节点确认一下

 

设置SQL节点

此步骤包含SQL节点的设置,该节点提供对数据库的应用程序访问。 我们为SQL节点使用2CentOS服务器:

db4 = 192.168.1.115

db5 = 192.168.1.112

 

然后下载MySQL Cluster包并解压缩:

cd ~
 wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
 tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

安装和删除软件包

安装perl-Data-Dumper并删除mariadb-libs:

yum -y install perl-Data-Dumper
 yum -y remove mariadb-libs

.安装MySQL Cluster

现在我们可以使用这些rpm命令为数据节点安装MySQL Cluster包:

cd~ 
 yum localinstall MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm  MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm  MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm -y

确保没有错误。

配置SQL节点

etc目录中创建一个新的my.cnf文件:

 

vi /etc/my.cnf

并在下面粘贴配置:

[mysqld]
 ndbcluster
 ndb-connectstring=192.168.1.107       # IP address for server management node
 default_storage_engine=ndbcluster     # Define default Storage Engine used by MySQL
  
 [mysql_cluster]
 ndb-connectstring=192.168.1.107       # IP address for server management node

保存文件并退出编辑器。这里简单粗暴直接跳过验证。

通过启动MySQL服务器启动SQL节点:

重新初始化数据库

cat .mysql_secret

# The random password set for the root user at Thu Aug 16 20:48:32 2018 (local time): 9ybWrUm68Vx00JY6

 

最后的数字就是root的密码

 

mysql_secure_installation 命令按照提示初始化数据库

 

如果是偷懒的同学可以直接mysqld中加入skip-grant-tables直接跳过用户验证

service mysql start

验证

在所有节点上操作完成之后,可以使用

ndb_mgm -e show 来检查

所有的节点都连接完毕

这个时候连接到

192.168.1.112数据库创建数据,创建表,添加数据。

在192.168.1.115上就可以直接看到这些数据了,反过来操作也是一样。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
2月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
213 2
|
3月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
7天前
|
Ubuntu 关系型数据库 MySQL
MySQL源码编译安装
本文详细介绍了MySQL 8.0及8.4版本的源码编译安装全过程,涵盖用户创建、依赖安装、cmake配置、编译优化等步骤,并提供支持多Linux发行版的一键安装脚本,适用于定制化数据库部署需求。
55 4
MySQL源码编译安装
|
7天前
|
Ubuntu 关系型数据库 MySQL
MySQL二进制包安装
本文详细介绍了在多种Linux系统上通过二进制包安装MySQL 8.0和8.4版本的完整过程,涵盖用户创建、glibc版本匹配、程序解压、环境变量配置、初始化数据库及服务启动等步骤,并提供支持多发行版的一键安装脚本,助力高效部署MySQL环境。
82 4
MySQL二进制包安装
|
7天前
|
安全 关系型数据库 MySQL
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
本文详细介绍在openSUSE系统上通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,包括下载地址、RPM包解压、GPG密钥导入、使用rpm或zypper命令安装及服务启动验证,涵盖初始密码获取与安全修改方法,适用于无网络环境下的MySQL部署。
136 3
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
|
7天前
|
关系型数据库 MySQL Linux
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
本文介绍了在openSUSE系统上通过SUSE资源库安装MySQL 8.0和8.4版本的完整步骤,包括配置国内镜像源、安装MySQL服务、启动并验证运行状态,以及修改初始密码等操作,适用于希望在SUSE系列系统中快速部署MySQL的用户。
41 3
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
|
7天前
|
Ubuntu 关系型数据库 MySQL
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
本文详细介绍了在Ubuntu 24.04、22.04、20.04及Debian 12系统上,通过离线DEB包安装MySQL 8.0和8.4版本的完整步骤。涵盖下载地址、依赖处理、dpkg安装顺序、配置方法及服务启动验证,确保用户可顺利部署MySQL数据库。
82 0
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
|
7天前
|
运维 Ubuntu 关系型数据库
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
本文介绍了在Debian系列系统(如Ubuntu、Debian 11/12)中通过APT仓库安装MySQL 8.0和8.4版本的完整步骤,涵盖添加官方源、配置国内镜像、安装服务及初始化设置,并验证运行状态,适用于各类Linux运维场景。
99 0
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
|
7天前
|
Oracle 关系型数据库 MySQL
MySQL包安装 -- RHEL系列(离线RPM包安装MySQL)
本文详细介绍在Rocky、CentOS、AlmaLinux、openEuler等主流Linux系统上,通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,涵盖下载、依赖处理、rpm/yum安装、服务启动、密码设置等关键环节,适用于多种企业级环境部署需求。
190 0
MySQL包安装 -- RHEL系列(离线RPM包安装MySQL)
|
7天前
|
存储 关系型数据库 MySQL
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)
MySQL是一款开源关系型数据库,高性能、易用、跨平台,支持多种存储引擎,广泛应用于Web开发、企业级应用等领域。本教程介绍其特点、架构及在主流Linux系统中的安装配置方法。
183 0
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)

推荐镜像

更多