标签:
MySQL群集须要有一组计算机。每台计算机的角色可能是不一样的。MySQL群集中有三种节点:管理节点、数据节点和SQL节点。群集中的某计算机可能是某一种节点。也可能是两种或三种节点的集合。这三种节点仅仅是在逻辑上的划分,所以它们不一定和物理计算机是一一相应的关系。
管理节点(也可以称管理server)主要负责管理数据节点和SQL节点,还有群集配置文件和群集日志文件。它监控其它节点的工作状态,可以启动、关闭或重新启动某个节点。其它节点从管理节点检索配置数据。当数据节点有新事件时就把事件信息发送给管理节点并写入群集日志。
数据节点用于存储数据。
SQL节点跟一般的MySQLserver是一样的。我们能够通过它进行SQL操作。
下图中画出了三种群集节点及应用程序间的关系:
下载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
首先找三台电脑。或者是开三个虚拟机。管理节点部署在一台机子上,其它两台每台都部署一个数据节点和一个SQL节点。
这里以两台机子举例,当中一台(IP为192.168.24.16)部署管理节点、数据节点和SQL节点,还有一台(IP为192.168.24.43)部署数据节点和SQL节点。
实际应用中,不要将管理节点跟数据节点部署到一台机子上,由于假设数据节点宕机会导致管理节点不可用,同一时候整个MySQL群集也就都不可用了。所以一个MySQL群集理想情况下至少有三台server,将管理节点单独放到一台server上。这里以两台举例,仅仅是为了说明三种节点的配置启动方法。
在文件夹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
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
[mysqld] # Options for mysqld process: # run NDB storage engine ndbcluster # location of management server ndb-connectstring=192.168.24.162、将my-default.ini 文件删除或更名为my-default.ini.bak
在启动MySQL Cluster之前,首先要做的是保证每一个SQL节点上的MySQL服务可以启动成功,并为每一个SQL节点进行相关权限的分配以保证可以远程登录訪问。然后依次启动三种节点。三种节点服务启动时,一定要依照先启动管理节点,后启动数据节点,再启动SQL节点的顺序进行。
1、进入C:\mysqlcluster\sqlnode\mysql\bin文件夹下,使用mysqld –install安装MySQL服务
2、 使用net start mysql命令启动MySQL服务GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘root‘ WITH GRANT OPTION;
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
1、在192.168.24.16主机中打开新命令行窗体,切到C:\mysqlcluster\datanode\mysql\bin,输入:
ndbd
2、也能够将其做成服务,在命令行中输入:
ndbd --install=ndbd3、以同样的方法在其它数据节点。即192.168.24.43中启动数据节点服务。
4、在192.168.24.16主机中打开新命令行窗体。切到文件夹C:\mysql\bin,输入:
ndb_mgm回车,然后再输入:
ALL STATUS回车,就能够查看数据节点的连接信息了。
1、在192.168.24.16主机中打开新命令行窗体,切到C:\mysqlcluster\sqlnode\mysql\bin,输入:
mysqld --console回车。SQL节点启动。
mysqld -install mysql3、以同样的方法在其它SQL节点,即192.168.24.43中启动SQL节点。
ndb_mgm回车,再输入:
SHOW回车,就能够看到SQL节点的连接情况了。
create table student (id int(2)) engine=ndbcluster;新建一个student表。能够看到其它SQL结点。即192.168.24.43均在myDB数据库中创建了一个student表
假设使用mysqldump的输出从已有数据库导入表,可在文本编辑器中打开SQL脚本,并将该选项加入到不论什么表创建语句,或用这类选项之中的一个替换不论什么已有的ENGINE(或TYPE)选项。
2、另外还请记住,每一个NDB表必须有一个主键。假设在创建表时用户没有定义主键,NDB Cluster存储引擎将自己主动生成隐含的主键。(凝视:该隐含 键也将占用空间。就像不论什么其它的表索引一样。
因为没有足够的内存来容纳这些自己主动创建的键,出现故障并不罕见)。
到此为止关于MySQL集群的搭建就解说完成了。可是单纯的依照这样搭建另一个缺陷。什么缺陷呢?下一次我们评论,敬请关注!
版权声明:本文博客原创文章。博客,未经同意,不得转载。
标签:
原文地址:http://www.cnblogs.com/lcchuguo/p/4716278.html