mysql分布式集群安装

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 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

32df1e281aba1799b379908dffc50b7543d.jpg

 

设置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

9835b527bd47521eb9db8df6138bd7e61d8.jpg

DB3如法炮制

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

b2b8100b770d63467207ecc212943f59feb.jpg

 

设置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 来检查

29b98c8640c289bda694a387fdd50c4a61e.jpg

所有的节点都连接完毕

这个时候连接到

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

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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL8.0生产环境二进制标准安装
MySQL8.0生产环境二进制标准安装
|
28天前
|
安全 关系型数据库 MySQL
Linux(CentOS6)安装MySQL5.6
Linux(CentOS 6)系统上安装MySQL 5.6版本的详细步骤,包括准备数据存放目录、创建用户、下载安装包、初始化数据库、配置服务脚本、设置环境变量等操作。
92 1
|
1月前
|
关系型数据库 MySQL Java
centos7安装mysql教程及Navicat平替软件
【8月更文挑战第17天】本教程详述CentOS 7上安装MySQL的过程。首先确保移除任何预装的MySQL组件,然后通过wget获取并安装MySQL的YUM源。可以选择安装特定版本如5.7或8.0。安装MySQL服务器后,启动服务并查找初始密码。登录MySQL后应立即更改密码,并可根据需要设置远程访问权限。此外,还推荐使用免费开源的DBeaver作为数据库管理工具,提供了安装步骤以方便管理和操作MySQL数据库。
|
20天前
|
弹性计算 关系型数据库 MySQL
centos7 mysql安装及配置
本文详细介绍了在阿里云服务器ECS上通过yum源安装MySQL 8.0.12的过程,包括更新yum源、下载并安装MySQL源、解决安装过程中可能遇到的问题等步骤。此外,还介绍了如何启动MySQL服务、设置开机自启、配置登录密码、添加远程登录用户以及处理远程连接异常等问题。适合初学者参考,帮助快速搭建MySQL环境。
107 8
centos7 mysql安装及配置
|
17天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
16天前
|
存储 Kubernetes 数据安全/隐私保护
k8s对接ceph集群的分布式文件系统CephFS
文章介绍了如何在Kubernetes集群中使用CephFS作为持久化存储,包括通过secretFile和secretRef两种方式进行认证和配置。
25 5
|
28天前
|
关系型数据库 MySQL Linux
在Linux中,新安装mysql后怎样提升mysql的安全级别?
在Linux中,新安装mysql后怎样提升mysql的安全级别?
|
27天前
|
关系型数据库 MySQL Shell
MySQL数据库一键安装脚本,适合任何版本
MySQL数据库一键安装脚本,适合任何版本
31 2
|
26天前
|
关系型数据库 MySQL Linux
Linux环境安装MySQL8.0.36使用rpm包安装,安装顺序是什么?
【8月更文挑战第23天】Linux环境安装MySQL8.0.36使用rpm包安装,安装顺序是什么?
136 1
|
1月前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL5.7生产环境二进制标准安装
MySQL5.7生产环境二进制标准安装