最后博文我们介绍一下相关概念集群,今天我们要介绍的博文MySQL相关内容集群。

1、MySQL集群简单介绍

MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQLserver故障不会对系统产生巨大的负面效应,系统的稳定性得到保障。

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



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

        数据节点用于存储数据。

        SQL节点跟一般的MySQLserver是一样的。我们能够通过它进行SQL操作。

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenMyMzQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

2、MySQL集群安装配置

下载MySQL集群:http://dev.mysql.com/downloads/cluster/

mysql-cluster-gpl-7.3.5-winx64.zip:

                http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.5-winx64.zip

        mysql-cluster-gpl-7.3.5-win32.zip:

                http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.5-win32.zip

1)、MySQL简单介绍

首先找三台电脑。或者是开三个虚拟机。管理节点部署在一台机子上,其它两台每台都部署一个数据节点和一个SQL节点。

这里以两台机子举例,当中一台(IP为192.168.24.16)部署管理节点、数据节点和SQL节点,还有一台(IP为192.168.24.43)部署数据节点和SQL节点。

实际应用中,不要将管理节点跟数据节点部署到一台机子上,由于假设数据节点宕机会导致管理节点不可用,同一时候整个MySQL群集也就都不可用了。所以一个MySQL群集理想情况下至少有三台server,将管理节点单独放到一台server上。这里以两台举例,仅仅是为了说明三种节点的配置启动方法。

2)、配置管理节点

1、在IP为192.168.24.16的主机的C盘中新建文件夹mysql,然后在此文件夹下新建子文件夹bin和mysql-cluster,再将安装包中的bin文件夹下的ndb_mgm.exe和ndb_mgmd.exe复制到C:\mysql\bin下。

在文件夹C:\mysql\bin下新建cluster-logs文件夹、config.ini文件和my.ini文件。

2、config.ini文件内容例如以下:

[ndbd default]
# Options affecting ndbd processes on all data nodes:
# Number of replicas
NoOfReplicas=2
DataDir=c:/mysqlcluster/datanode/mysql/bin/cluster-data
# Directory for each data node's data files
# 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=192.168.24.16
# 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=192.168.24.16 [ndbd]
# Options for data node "B":
# Hostname or IP address
HostName=192.168.24.43 [mysqld]
# SQL node options:
# Hostname or IP address
HostName=192.168.24.16 [mysqld]
# SQL node options:
# Hostname or IP address
HostName=192.168.24.43

3、my.ini中的内容例如以下:

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

3)、配置数据节点

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

        2、将安装包data文件夹下的全部文件复制到C:\mysqlcluster\datanode\mysql\cluster-data下

        3、将安装包中bin文件夹下的ndbd.exe复制到C:\mysqlcluster\datanode\mysql\bin下,并在C:\mysqlcluster\datanode\mysql中新建my.ini文件,文件内容为:

[mysql_cluster]
# Optionsfor data node process:
#location of management server
ndb-connectstring=192.168.24.16

注:由于数据节点的配置是一样的,所以我们能够直接将192.168.24.16主机中的目录C:\mysqlcluster复制到192.168.24.43主机的C盘下。

4)、配置SQL节点

1、在192.168.24.16主机的C:\mysqlcluster下新建子文件夹sqlnode。在C:\mysqlcluster\sqlnode下新建子文件夹mysql,将安装包文件解压到mysql文件夹下,然后在C:\mysqlcluster\sqlnode\mysql下新建my.ini文件,文件内容为:

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

2、将my-default.ini 文件删除或更名为my-default.ini.bak

注:由于SQL节点的配置也是一样的,所以我们能够直接将192.168.24.16主机中的目录C:\mysqlcluster\sqlnode目录整个复制到192.168.24.43主机的C盘下。

3、启动MySQL Cluster

1)简单介绍

在启动MySQL Cluster之前,首先要做的是保证每一个SQL节点上的MySQL服务可以启动成功,并为每一个SQL节点进行相关权限的分配以保证可以远程登录訪问。然后依次启动三种节点。三种节点服务启动时,一定要依照先启动管理节点,后启动数据节点,再启动SQL节点的顺序进行。

2)、启动MySQL服务

1、进入C:\mysqlcluster\sqlnode\mysql\bin文件夹下,使用mysqld –install安装MySQL服务

2、 使用net start mysql命令启动MySQL服务

3)配置MySQL远程连接

1、 进入C:\mysqlcluster\sqlnode\mysql\bin文件夹下,使用mysql –uroot –p,然后输入password,设置root用户password。

 

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenMyMzQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

注:第一次输入的password,即默认设置为rootpassword。

        2、 切换到mysql数据库,输入下面命令,为root用户分配远程连接的相关权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

4)、启动管理节点

1、在192.168.24.16主机中打开命令行窗体,切到C:\mysql\bin文件夹,输入:

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

回车,管理节点服务就启动了。命令行上可能没有不论什么提示信息。能够打开C:\mysql\bin\cluster-logs\ndb_1_cluster.log日志文件查看启动信息。

注意,此命令行窗体不能关闭,除非你想停止服务。

2、也能够将其做成服务,在命令行中输入:

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

5)、启动数据节点

1、在192.168.24.16主机中打开新命令行窗体,切到C:\mysqlcluster\datanode\mysql\bin,输入:

ndbd

2、也能够将其做成服务,在命令行中输入:

ndbd --install=ndbd

3、以同样的方法在其它数据节点。即192.168.24.43中启动数据节点服务。

4、在192.168.24.16主机中打开新命令行窗体。切到文件夹C:\mysql\bin,输入:

ndb_mgm

回车,然后再输入:

ALL STATUS

回车,就能够查看数据节点的连接信息了。

6)、启动SQL节点

1、在192.168.24.16主机中打开新命令行窗体,切到C:\mysqlcluster\sqlnode\mysql\bin,输入:

mysqld --console

回车。SQL节点启动。

        2、也能够将其做成服务,输入:

mysqld -install mysql

3、以同样的方法在其它SQL节点,即192.168.24.43中启动SQL节点。

        4、想要查看SQL节点的启动情况能够在192.168.1.10主机中相同打开新命令行。输入:

ndb_mgm

回车,再输入:

SHOW

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

4、測试MySQL Cluster

1)、在任一SQL结点,即192.168.24.16主机上新创建一个数据库myDB,能够看到其它SQL结点,即192.168.24.43均创建了一个MyDB数据库

        2)、在任一SQL结点,即192.168.24.16主机上的myDB中使用

create table student (id int(2)) engine=ndbcluster;

新建一个student表。能够看到其它SQL结点。即192.168.24.43均在myDB数据库中创建了一个student表

        3)、在任一SQL结点。即192.168.24.16主机上的myDB中的student表插入几条数据之后。能够看到其它SQL结点,即192.168.24.43均作了相关的变化

        注:与没有使用 Cluster的MySQL相比,在MySQL Cluster内操作数据的方式没有太大的差别。运行这类操作时应记住两点:

        1、表必须用ENGINE=NDB或ENGINE=NDBCLUSTER选项创建。或用ALTER TABLE选项更改,以使用NDB Cluster存储引擎在 Cluster内复制它们。

假设使用mysqldump的输出从已有数据库导入表,可在文本编辑器中打开SQL脚本,并将该选项加入到不论什么表创建语句,或用这类选项之中的一个替换不论什么已有的ENGINE(或TYPE)选项。

2、另外还请记住,每一个NDB表必须有一个主键。假设在创建表时用户没有定义主键,NDB Cluster存储引擎将自己主动生成隐含的主键。(凝视:该隐含 键也将占用空间。就像不论什么其它的表索引一样。

因为没有足够的内存来容纳这些自己主动创建的键,出现故障并不罕见)。

到此为止关于MySQL集群的搭建就解说完成了。可是单纯的依照这样搭建另一个缺陷。什么缺陷呢?下一次我们评论,敬请关注!

版权声明:本文博客原创文章。博客,未经同意,不得转载。

高级项目 它 集群环境建设(两)MySQL簇的更多相关文章

  1. mycat数据库集群系列之mysql主从同步设置

    最近在梳理数据库集群的相关操作,现在花点时间整理一下关于mysql数据库集群的操作总结,恰好你又在看这一块,供一份参考.本次系列终结大概包括以下内容:多数据库安装.mycat部署安装.数据库之读写分离 ...

  2. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  3. 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  4. 分布式缓存技术redis系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  5. redis高级应用(集群搭建、集群分区原理、集群操作)

    文章主目录 Redis集群简介 Redis集群搭建 Redis集群分区原理 集群操作 参考文档 本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 ...

  6. redis系列之4----redis高级应用(集群搭建、集群分区原理、集群操作)

    文章主目录 Redis集群简介 Redis集群搭建 Redis集群分区原理 集群操作 参考文档 本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 ...

  7. WEB项目会话集群的三种办法

    web集群时session同步的3种方法 在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上, 如果session不同步的 ...

  8. Eclipse中将hadoop项目放在集群中运行

    1.加入配置文件到项目源码目录下(src) <configuration> <property> <name>mapreduce.framework.name< ...

  9. eureka集群的两种配置方式:配置文件方式与DNS方式

    eureka client获取serviceUrls(eureka server地址)列表的过程: 1. 根据use-dns-for-fetching-service-urls属性判断是从dns还是从 ...

随机推荐

  1. 对struts2的OGNL的理解

    OGNL:Object-Graph Navigation Language.对象图形化导航语言 OGNL是集成进struts2框架中比較强大的技术有助于传输数据和类型转换,OGNL由表达式语言和类型装 ...

  2. sql plus 抢救数据(測)

    有索引 --运行plsql脚本 DECLARE  TYPE RowIDTab ISTABLE OF ROWID INDEXBY BINARY_INTEGER;    CURSORc1 IS selec ...

  3. WM_CLOSE、WM_DESTROY、WM_QUIT学习总结(点击关闭按钮会触发WM_CLOSE消息,DestroyWindow API会触发WM_DESTROY和WM_NCDESTROY消息,MSDN上写的很清楚)

    WM_CLOSE:关闭应用程序窗口 WM_DESTROY:关闭应用程序 WM_QUIT:关闭消息循环 只有关闭了消息循环,应用程序的进程才真正退出(在任务管理器里消失). win32应用程序的完整退出 ...

  4. 管理处理器的亲和性(affinity)

    管理处理器的亲和性(affinity) 管理处理器的亲和性(affinity)

  5. Codeforces 461B - Appleman and Tree 树状DP

    一棵树上有K个黑色节点,剩余节点都为白色,将其划分成K个子树,使得每棵树上都仅仅有1个黑色节点,共同拥有多少种划分方案. 个人感觉这题比較难. 如果dp(i,0..1)代表的是以i为根节点的子树种有0 ...

  6. cocos2d-x(十二)Lua开发飞机大战-7-加入敌机

    Lua本是一门面向过程的解释性语言.但在开发过程中有很多人还是习惯于面向对象编程.在Lua中我们能够使用table模拟类.只是写起来不太爽(特别是在继承一些C++类的时候).通过查看演示样例.发现co ...

  7. [置顶] C++学习书单

    关于C++的书太多了,很容易让人没有头绪.一直想整理下,把这些书列个书单出来,直到今天才动手.希望我的经验能给后来的初学者一点帮助. 1.<C++程序设计教程> 钱能 很多学校把这本书选做 ...

  8. c++map按value排序--将map的pair对保存到vector中,然后写比较仿函数+sort完成排序过程。

    map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行 ...

  9. delphi 发送消息控制滚动条

    1.Perform 函数 DBGrid1.Perform(WM_VSCROLL,SB_PAGEDOWN,0);  //控制滚动条,向后翻页 DBGrid1.Perform(WM_VSCROLL,SB_ ...

  10. 使用Ambari快速部署Hadoop大数据环境

    使用Ambari快速部署Hadoop大数据环境   发布于2013-5-24   前言 做大数据相关的后端开发工作一年多来,随着Hadoop社区的不断发展,也在不断尝试新的东西,本文着重来讲解下Amb ...