mysql分布式集群安装

概述

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分布式集群安装

 

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

mysql分布式集群安装

DB3如法炮制

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

mysql分布式集群安装

 

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

mysql分布式集群安装

所有的节点都连接完毕

这个时候连接到

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

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

上一篇:第八章 泛型程序设计


下一篇:SQL Server中的通配符和转义字符