Mysql群集(Cluster)简介

MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的。MySQL群集中有三种节点:管理节点、数据节点和SQL节点。群集中的某计算机可 能是某一种节点,也可能是两种或三种节点的集合。这三种节点只是在逻辑上的划分,所以它们不一定和物理计算机是一一对应的关系。

管理节点(也可以称管理服务器)主要负责管理数据节点和SQL节点,还有群集配置文件和群集日志文件。它监控其他节点的工作状态,能够启动、关闭或重启某 个节点。其他节点从管理节点检索配置数据,当数据节点有新事件时就把事件信息发送给管理节点并写入群集日志。

数据节点用于存储数据。

SQL节点跟一般的MySQL服务器是一样的,我们可以通过它进行SQL操作。

下图中画出了三种群集节点及应用程序间的关系:

 

MySQL Cluster的下载

  我们使用的Mysql Server已经不能满足群集的要求,配置群集需要使用MySQL Cluster,即只要下载MySQL Cluster就可以了,无须再下载安装MySQL Server. 因为MySQL Cluster中已经自带了。

MySQL Cluster支持Linux、Mac OS X、Solaris和Windows操作系统。以Windows系统下的MySQL Cluster版本MySQL Cluster 7.2.5为例说明MySQL Cluster的配置和启动。

MySQL Cluster的下载地址是http://dev.mysql.com/downloads/cluster。 如果你的操作系统是32位的,就选择Windows (x86, 32-bit), ZIP Archive下载,大小为228.9M,如果是64位的,就下载Windows (x86, 64-bit), ZIP Archive,大小为232.7M。它们都是免安装的二进制版本。

      MySQL Cluster的配置

首 先找三台电脑,或者是开三个虚拟机,管理节点部署在一台机子上,其他两台每台都部署一个数据节点和一个SQL节点。这里以两台机子举例,其中一台 (IP为192.168.1.10)部署管理节点、数据节点和SQL节点,另一台(IP为192.168.1.20)部署数据节点和SQL节点。

其 实最好不要将管理节点跟数据节点部署到一台机子上,因为如果数据节点宕机会导致管理节点也不可用,整个MySQL群集就都不可用了。所以一个MySQL群 集理想情况下至少有三台服务器,将管理节点单独放到一台服务器上。鸡啄米暂以两台举例,只是为了说明三种节点的配置启动方法。

   1.将上面下载的安装包解压,并改文件夹名为mysql,因为需要多次在命令行中操作,所以名字改短后更容易输入。

2.配置管理节点

在IP为192.168.1.10的主机的C盘中新建文件夹mysql,然后在此文件夹下新建子目录bin和mysql-cluster,再将安装包解压 后的mysql\bin中的ndb_mgm.exe和ndb_mgmd.exe拷贝到C:\mysql\bin下。在目录C:\mysql\bin下新建 cluster-logs目录、config.ini文件和my.ini文件。

config.ini文件内容如下:

[ndbd default]
# Options affecting ndbd processes on all data nodes:
# Number of replicas
NoOfReplicas=2
# Directory for each data node's data files
DataDir=c:/mysqlcluster/datanode/mysql/bin/cluster-data # Memory allocated to data storage
DataMemory=80M
# Memory allocated to index storage
IndexMemory=18M
# For DataMemory and IndexMemory, we have used the
# default values. [ndb_mgmd]
# Management process options:
# Hostname or IP address of management node
HostName=10.0.0.11
# Directory for management node log files
DataDir=C:/mysql/bin/cluster-logs [ndbd]
# Options for data node "A":
# (one [ndbd] section per data node)
# Hostname or IP address
HostName=10.0.0.11 [ndbd]
# Options for data node "B":
# Hostname or IP address
HostName=10.0.0.10 [mysqld]
# SQL node options:
# Hostname or IP address
HostName=10.0.0.11 [mysqld]
# SQL node options:
# Hostname or IP address
HostName=10.0.0.10

my.ini文件内容如下:

[mysql_cluster]
# Options for management node process
config-file=C:/mysql/bin/config.ini

  3.配置数据节点

在IP为192.168.1.10的主机中新建文件夹C:\mysqlcluster\datanode\mysql,然后在此文件夹中继续新建子目录bin和cluster-data,bin下再建一个子目录也叫cluster-data。

将安装包解压文件夹中mysql\bin中的ndbd.exe拷贝到C:\mysqlcluster\datanode\mysql\bin下,并在C:\mysqlcluster\datanode\mysql中新建my.ini文件,文件内容为:

       [mysql_cluster]
# Options for data node process:
ndb-connectstring=192.168.1.10 # location of management server

因为两台主机的数据节点的配置是一样的,所以我们可以直接将192.168.1.10主机中的文件夹C:\mysqlcluster拷贝到192.168.1.20主机的C盘下。

  4.配置SQL节点

在192.168.1.10主机的C:\mysqlcluster下新建子目录sqlnode,将安装包解压文件夹mysql整个拷贝到这个子目录下,然后在C:\mysqlcluster\sqlnode\mysql下新建my.ini文件,文件内容为:

       [mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine
ndb-connectstring=192.168.1.10 # location of management server

之后也把C:\mysqlcluster\sqlnode文件夹整个拷贝到192.168.1.20主机的相同目录下。

  MySQL Cluster的启动

三种节点服务启动时,一定要按照先启动管理节点,后启动数据节点,再启动SQL节点的顺序进行。

1.启动管理节点

在192.168.1.10主机中打开命令行窗口,切到C:\mysql\bin目录,输入:

  ndb_mgmd -f config.ini --configdir=C:\mysql\mysql-cluster

回车,管理节点服务就启动了,命令行上可能没有任何提示信息,可以打开C:\mysql\bin\cluster-logs\ndb_1_cluster.log日志文件查看启动信息。注意,此命令行窗口不能关闭,除非你想停止服务。

注:我们也可以将其做成服务,在命令行中输入:

  ndb_mgmd --install=ndb_mgmd -f config.ini --configdir=C:\mysql\mysql-cluster

2.启动数据节点

在192.168.1.10主机中打开一个新的命令行窗口,切到目录C:\mysqlcluster\datanode\mysql\bin,输入:

  ndbd

回车,数据节点就启动了。

注:我们也可以将其做成服务,在命令行中输入:

  ndbd --install=ndbd

以相同的方法在192.168.1.20中启动数据节点服务。

如何查看是否启动成功呢?我们可以在192.168.1.10主机中再新开一个命令行窗口,切到目录C:\mysql\bin,输入:

  ndb_mgm

回车,然后再输入:

  ALL STATUS

回车,就可以看到数据节点的连接信息了。

3.启动SQL节点

在192.168.1.10主机中继续打开一个新的命令行窗口,切到目录C:\mysqlcluster\sqlnode\mysql\bin,输入:

mysqld --console

回车,SQL节点启动。

注:我们也可以将其做成服务,输入:

  mysqld -install mysql

以相同的方法在192.168.1.20中启动SQL节点。

想要查看SQL节点的启动情况可以在192.168.1.10主机中同样打开新命令行,输入:

  ndb_mgm

回车,再输入:

  SHOW

回车,就可以看到SQL节点的连接情况了。

  测试MySQL集群
  数据库并插入数据">1、在sql节点A建立数据库并插入数据:

  在sql节点A的计算机上(192.168.1.10)的cmd中运行C:\mysqlcluster\sqlnode\mysql\bin\mysql.exe -u root -p命令登录mysql,接下来需要输入密码时,密码默认为空(直接回车)。

  创建数据库并插入数据:
  —–创建名为”MySQL_Cluster_Test”的数据库:

  create database MySQL_Cluster_Test;

  —–创建表”T_User”:

  use MySQL_Cluster_Test;
  create table T_User(Name varchar(32),Age int) engine=ndbcluster;

  注意建表语句后面一定要加上 engine=ndbcluster

  —–插入数据:

  insert into T_User values('DannyHoo',26);

  —–查询数据:

select * from T_User;

如何在Windows系统中配置Mysql群集(Mysql Cluster)的更多相关文章

  1. 如何在Windows系统中配置Mysql群集(Mysql Cluster)

    MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障. Mysql群集(Cluster)简介 M ...

  2. 在Windows系统中配置Google AddressSanitizer

    Google AddressSanitizer简介 AddressSanitizer (ASan) 是 C 和 C++ 的内存错误检测软件,它可以检测: 释放指针后继续使用 堆缓冲区溢出 栈缓冲区溢出 ...

  3. 如何在Windows系统中设置Python程序定时运行

    文章出处:http://blog.csdn.net/wwy11/article/details/51100432 首先,我们肯定是要用到Windows下的[计划任务]功能 之后点击右侧的[创建基本任务 ...

  4. windows系统中配置多版本anaconda

    1.最好从国内的镜像站下载anaconda,国外那个站实在是太慢了,清华开源软件镜像站(https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/) 2.如 ...

  5. mysql绿色版在windows系统中的启动

    mysql绿色版在windows系统中的启动 1.下载mysql免安装版 例如:mysql-5.7.11-winx64 2.修改配置文件,my-default.ini名称改为:my.ini,文件里面的 ...

  6. Cmder命令行工具在Windows系统中的配置

    一.Cmder简介 Cmder:一款用于Windows系统中,可增强传统cmd命令行工具的控制台模拟器(类似于Linux系统中的终端控制窗口) 特点: 无需安装,解压即用 可使用较多Linux命令,如 ...

  7. 如何在CentOS系统中安装配置SNMP服务

    CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,现在有一大部分服务器在使用此操作系统:SNMP(简单网络 ...

  8. 在Windows系统中安装集成的PHP开发环境

    原文:在Windows系统中安装集成的PHP开发环境 刚想学php的,又不会配置复杂php的环境,可以使用集成的,目前网上提供常用的PHP集成环境主要有AppServ.phpStudy.WAMP和XA ...

  9. Redis进阶实践之三如何在Windows系统上安装安装Redis(转载)

    Redis进阶实践之三如何在Windows系统上安装安装Redis 一.Redis的简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括 ...

随机推荐

  1. 压测2.0:云压测 + APM = 端到端压测解决方案

    从压力测试说起 压力测试是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患.与功能测试不同,压测是以软件响应速度为测试目标的,尤其是针对在较短时间内大量并发用户的访 ...

  2. 如何用 Parse 和 Swift 搭建一个像 Instagram 那样的应用?(3)

    [编者按]本篇文章作者是 Reinder de Vries,既是一名企业家,也是优秀的程序员,发表多篇应用程序的博客.本篇文章中,作者主要介绍了如何基于 Parse 特点,打造一款类似 Instagr ...

  3. FZU2165 v11(带权的重复覆盖)

    题意:有n个boss,m种武器,每种武器选用的时候需要有一定的花费ci,然后这个武器可以消灭掉其中一些BOSS,问你消灭完所有的BOSS,需要的最少花费是多少. 当时比赛的时候,看到这题以为是什么网络 ...

  4. Android屏幕适应详解(一)

    一.关于布局适配 1.不要使用绝对布局 2.尽量使用match_parent 而不是fill_parent . 3.能够使用权重的地方尽量使用权重(android:layout_weight) 4.如 ...

  5. ExtJs布局之border

    <!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...

  6. [转载] Linux poll机制

    原地址:http://hongwazi.blog.163.com/blog/#m=0&t=3&c=poll poll的是一种查询的方式,英文解释 :民意调查 函数原型:int poll ...

  7. VS编译的QT程序发布时产生的AppCrash问题

    至少我碰到了三个情况,都是AppCrash错误(以下都指VS2008的Release的设置) 第1个错误,报错模块是程序自己 我使用VS2008 Team with SP1和QT4.86编译程序,一直 ...

  8. HttpClient基本用法

    <Apache HttpClient 4.3开发指南> Apache HttpClient 4系列已经发布很久了,但由于它与HttpClient 3.x版本完全不兼容,以至于业内采用此库的 ...

  9. Linux命令-grep

    grep命令用于对文本进行搜索,格式为“grep [选项] [文件]” 搜索某个关键词:"grep 关键词 文本文件" 参数说明 -b 将可执行文件当做文本文件来搜索 -c 仅显示 ...

  10. 机器学习 —— 概率图模型(Homework: Structure Learning)

    概率图的学习真的要接近尾声了啊,了解的越多越发感受到它的强大.这周的作业本质上是data mining.从数据中学习PGM的结构和参数,完全使用数据驱动 —— No structure, No par ...