简单介绍一下MySQL集群涉及的三种节点:
管理节点(也可以称管理服务器)是整个集群环境的核心,类似于集群中起调度作用的枢纽,由它来负责管理其它节点(数据节点和SQL节点)的开启、关闭或重启某个节点等等;其他节点从管理节点检索配置数据,当数据节点有新事件时就把事件信息发送给管理节点并写入群集日志。该管理节点也是从mysql 5.6版本之后才出现,可见数据库对于搭建集群这个方向正在提出新的需求和新的挑战,也许在之后的版本中搭建集群将变的非常简单,期待后续版本功能更强大。
数据节点用于存储数据,如用户的数据、数据库、表、视图、存储过程等都保存在数据节点中。
SQL节点(即MySql Service服务器)跟一般的MySQL服务器是一样的,通过它来对数据进行管理和维护工作,为数据库提供各种服务,如操作数据库、安全、备份。
MySQL 集群支持多台电脑,本文搭建的MySQL集群以两台机子为例,其中一台(IP为192.168.191.3)部署管理节点、数据节点和SQL节点,另一台(IP为192.168.191.1)部署数据节点和SQL节点。
一 准备工作
管理节点(MGM)192.168.191.3(db1)
数据节点1(NDBD1) 192.168.191.3(db2)
数据节点2(NDBD2) 192.168.191.1(db3)
SQL节点1(SQL1) 192.168.191.3(db4)
SQL节点2(SQL2) 192.168.191.1(db5)
Mysql Cluster的下载地址:http://dev.mysql.com/downloads/cluster/
本人下载的是mysql-cluster-gpl-7.4.11-winx64.zip免安装版
二 集群配置
(1)管理节点
解压mysql-cluster-gpl-7.4.11-winx64.zip文件
2.1.1 在IP为192.168.191.3的电脑上的C盘根目录下新建mysql目录,在mysql目录下新建bin目录和mysql-cluster目录,在bin目录下新建cluster-logs目录、config.ini文件、my.ini文件,再将安装包中的bin目录下的ndb_mgm.exe和ndb_mgmd.exe拷贝到C:\mysql\bin下。
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.191.3
# 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.191.3
[ndbd]
# Options for data node "B":
# Hostname or IP address
HostName=192.168.191.1
[mysqld]
# SQL node options:
# Hostname or IP address sql节点
HostName=192.168.191.3
[mysqld]
# SQL node options:
# Hostname or IP address
HostName=192.168.191.1
my.ini中的内容如下
[mysql_cluster]
# Options for management node process
config-file=C:/mysql/bin/config.ini
(2)数据节点
2.2.1 在IP为192.168.191.3的电脑C盘新建mysqlcluster目录,在mysqlcluster目录下新建datanode目录,在datanode目录下新建mysql目录,在mysql目录下新建bin目录和cluster-data目录,在bin目录下再建一个子目录也叫cluster-data。
2.2.2
2.2.3
2.2.4
[mysql_cluster]
# Options for data node process:
# location of management server 管理节点IP
ndb-connectstring=192.168.191.3
注:因为各数据节点的配置是一样的,所以我们可以直接将192.168.191.3主机中的文件夹C:\mysqlcluster拷贝到192.168.191.1主机的C盘下,并无需任何更改。
(3)sql节点
2.3.1 在IP为192.168.191.3的电脑C:\mysqlcluster目录下新建sqlnode目录,在sqlnode目录下新建mysql目录,将zip文件解压后的所有文件(bin目录一级的所有目录和文件)都放在mysql目录下
2.3.2将my-default.ini 文件删除或更名为my-default.ini.bak
2.3.3在mysql目录下新建my.ini文件,文件内容为:
[mysqld]
ndbcluster
# Options for data node process:ndbcluster
# location of management server 管理节点IP
ndb-connectstring=192.168.191.3
port=3307
注:此处设置端口号为3307,是因为本人电脑上已经装了一个mysql版本,为避免冲突设置的。不设置的话默认为3306
因为各sql节点的配置是一样的,所以我们可以直接将192.168.191.3主机中的文件夹C:\mysqlcluster拷贝到192.168.191.1主机的C盘下,并无需任何更改。
三 启动集群
三种节点服务启动时,一定要按照先启动管理节点,后启动数据节点,再启动SQL节点的顺序进行。
(1)启动管理节点
3.1.1 在IP为192.168.191.3的电脑上打开命令窗口,进入到C:\mysql\bin目录,输入
ndb_mgmd -f config.ini --configdir=C:\mysql\mysql-cluster
回车,管理节点就启动了
注:此行命令行窗口不能关闭,除非想停止服务。
(2)启动数据节点
3.2.1在192.168.191.3的电脑上打开命令窗口,进入到C:\mysqlcluster\datanode\mysql\bin目录,输入
ndbd
回车,数据节点就启动了
3.2.2 以相同的方法在IP为192.168.191.1的电脑上启动数据节点
3.2.3此时可以在有管理节点的电脑上查看数据节点和sql节点的连接情况
在IP为192.168.191.3的电脑上打开命令窗口,进入到C:\mysql\bin目录,输入
ndb_mgm 按回车,再输入:
all status,回车,就可以查看数据节点的连接信息了(若使用show 会查看到管理节点、各数据节点、各SQL节点的连接信息)
(3)启动sql节点
3.3.1首先需要启动mysql服务(切记:以管理员身份运行cmd窗口,否则会出现下图情况)
在192.168.191.3的电脑上打开命令窗口,进入到C:\mysqlcluster\sqlnode\mysql\bin目录,输入
mysqld –install
回车,安装mysql服务,如果已安装,就不需要进行这一步
然后输入 net start mysql 命令启动MySQL服务
3.3.2在192.168.191.3的电脑上打开命令窗口,进入到C:\mysqlcluster\sqlnode\mysql\bin,输入
mysqld --console
回车,SQL节点启动。
3.3.3以相同的方法在IP为192.168.191.1的电脑上启动sql节点
四 测试集群
本人用navicat for mysql连接数据库,在IP为192.168.191.3的电脑上创建了一个数据库,在IP为192.168.191.1电脑上也会显示,注意创建表的时候需在见建表语句后加上
engine=ndbcluster 或 engine=ndb