概述

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

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

1.管理节点 - NDB_MGMD / MGM

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

2.数据节点 - NDBD / NDB

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

3. SQL节点 -MySQLD/ API

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

在本教程中,我将指导您完成使用centOS7安装和配置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

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

systemctldisablefirewalld

systemctlstopfirewalld

并且禁用selinux

vi/etc/selinux/config

# This file controls the state ofSELinuxon the system.

# SELINUX= can take one of these three values:

#       enforcing -SELinuxsecurity policy is enforced.

#       permissive -SELinuxprints warnings instead of enforcing.

#       disabled - NoSELinuxpolicy 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软件

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

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

cd~

wgethttp://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

tar -xvfMySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

安装和删除软件包

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

yum -y installperl-Data-Dumper

yum -y removemariadb-libs

安装MySQL Cluster

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

cd~

yumlocalinstallMySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpmMySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpmMySQL-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_mgmddefault]

# Directory for MGM node log files

DataDir=/var/lib/mysql-cluster

[ndb_mgmd]

#Management Node db1

HostName=192.168.1.107

[ndbddefault]

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     --Sucessfullycreated config directory

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

ndb_mgm

show

设置MySQL群集数据节点

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

db2 = 192.168.1.111

db3 = 192.168.1.109

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

使用ssh登录到db2服务器:

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

cd ~

wgethttp://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

tar -xvfMySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

安装和删除软件包

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

yum -y installperl-Data-Dumper

yum -y removemariadb-libs

.安装MySQL Cluster

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

cd~

yumlocalinstallMySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpmMySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpmMySQL-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节点使用2个CentOS服务器:

db4 = 192.168.1.115

db5 = 192.168.1.112

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

cd ~

wgethttp://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

tar -xvfMySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

安装和删除软件包

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

yum -y installperl-Data-Dumper

yum -y removemariadb-libs

.安装MySQL Cluster

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

cd~

yumlocalinstallMySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpmMySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpmMySQL-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直接跳过用户验证

servicemysqlstart

验证

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

ndb_mgm-e show 来检查

所有的节点都连接完毕

这个时候连接到

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

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

mysql 分布式 安装_mysql分布式集群安装-阿里云开发者社区相关推荐

  1. mysql 接口访问_MySQL的数据库访问接口-阿里云开发者社区

    大部分流行的关系数据库产品采用的都是 C/S 架构.因此,应用程序要访问数据库的数据就必须和各种数据库客户端(也称为数据库访问接口)打交道.可以这么认为,每一种流行的编程语言都需要一个对应的数据库访问 ...

  2. mysql 参数调整_mysql需要调整的参数-阿里云开发者社区

    Mysql需要调整的参数 #以 mysql 5.6版本示例讲解 一.Innodb设置 innodb_buffer_pool_size:保存innodb数据和索引在该buffer中, 对专用mysql服 ...

  3. mysql double 存储_关于MYSQL中FLOAT和DOUBLE类型的存储-阿里云开发者社区

    关于MYSQL中FLOAT和DOUBLE类型的存储 重庆八怪 2016-04-12 844浏览量 简介: 关于MYSQL中FLOAT和DOUBLE类型的存储 其实在单精度和双精度浮点类型存储中其存储方 ...

  4. mysql5.7 备份恢复_RDS for MySQL 5.7 备份恢复为本地实例-阿里云开发者社区

    RDS for MySQL 5.7 备份恢复为本地实例 近期同学咨询反馈 RDS for MySQL 5.7 备份恢复本地实例的问题比较多,提供一个恢复样例. 1. 本地环境 # 项目 说明 1 OS ...

  5. 阿里mysql数据库同步_如何对MySQL数据库中的数据进行实时同步-阿里云开发者社区...

    数据传输(Data Transmission) 支持以数据库为核心的结构化存储产品之间的数据传输. 它是一种集数据迁移.数据订阅及数据实时同步于一体的数据传输服务.数据传输致力于在公有云.混合云场景下 ...

  6. vs2010中svn使用教程_SVN安装以及和VS2010整合使用-阿里云开发者社区

    安装文件下载(哪个下载快用哪个) : 说明:软件名称是一样的,不同版本没多大区别,大致是一样的. 先安装 服务端(Setup-Subversion-1.6.5.msi), 再安装客户端(Tortois ...

  7. mysql聚合函数要分组吗_mysql聚合函数和分组-阿里云开发者社区

    文章实例的数据表,来自上一篇博客<mysql简单查询>:http://blog.csdn.net/zuiwuyuan/article/details/39349611 一. 聚合函数 聚合 ...

  8. mysql字符串区分大小写么_mysql字符串区分大小写的问题-阿里云开发者社区

    一. 1. CREATE TABLE NAME(name VARCHAR(10)); 对这个表,缺省情况下,下面两个查询的结果是一样的: SELECT * FROM TABLE NAME WHERE ...

  9. mysql 修复表 阿里云_MySql数据表修复方法-阿里云开发者社区

    mysqld进程在一个写入当中被杀死.计算机的意外关闭(例如,如果计算机掉电).一个硬件错误这章描述如何检查和处理在MySQL数据库中的数据损坏.如果你的表损坏很多,你应该尝试找出其原因!见G.1 调 ...

  10. mysql数据一条复制_Mysql 复制一条数据-阿里云开发者社区

    从不同的表复制 insert into 表1 select * from 表2 where id =** ; 同一张表中复制(无主键) insert into 表1 select * from 表2 ...

最新文章

  1. mongodb地理位置索引实现原理
  2. redis cluster 集群重新启动关闭
  3. VMware 虚拟机 无法将Ethernet0连接到虚拟网络VMnet0 问题
  4. 在win10下面新建一个虚拟网卡
  5. 【新手提问导读】提问的艺术
  6. mysql 3t_编译安装mysql
  7. Golang package
  8. SQL Server-数据类型(七)
  9. python:python对象属性及属性函数property()
  10. 最速下降法/steepest descent,牛顿法/newton,共轭方向法/conjugate direction,共轭梯度法/conjugate gradient 及其他
  11. 第四次黄鹤楼之老照片
  12. 小米2系列板砖自救行动
  13. 2021 年最佳开源软件榜单
  14. 微信小程序前端【订阅消息】遇到的问题及总结
  15. Nature:分离到一种位于原核生物-真核生物“交界”的古菌
  16. 卸载python2_彻底卸载python
  17. 如何在 ggplot2 中制作饼图(附示例)
  18. 操作系统---页式地址重定位
  19. Linux系统安装rar压缩软件
  20. 蓝桥杯 Basic--3 字母图形

热门文章

  1. ReactNative ViewPageAndroid组件详解
  2. javascript数据结构与算法---检索算法(二分查找法、计算重复次数)
  3. git使用指南及分支管理策略
  4. 在线编辑器 上传控件
  5. JAVA线程池ThreadPoolExecutor与阻塞队列BlockingQueue .
  6. 31天重构学习笔记重新整理下载
  7. SharePoint Project Item Replaceable Parameters
  8. ios开发国外视频教程(有翻译)
  9. 监测你的SQL SERVER--让瓶颈暴露
  10. python读取文件夹图片_读取文件夹里的图片,并且与标签对应