一、下载
官方下载地址:
https://dev.mysql.com/downloads/cluster/
选择相应的系统版本,选择zip格式
介绍:
准备:
两台windows系统的主机。
第一台机器,IP 为 192.168.1.1,作为管理节点(MGM NodeId=1),数据节点1(NDBD NodeId=2),SQL节点1(SQL NodeId=3)。
第二台机器,IP 为 192.168.1.2,作为数据节点2(NDBD NodeId=4),SQL节点2(SQL NodeId=5)。
二、安装
1。解压zip格式,放到D盘下(其他盘也可以),作为数据节点和SQL节点。例:D:\mysql-cluster-gpl-7.4.17-winx64\
在D:\mysql-cluster-gpl-7.4.17-winx64\下创建文件my.ini
2。启动mysql,在其\bin\目录下执行命令,
mysqld.exe -install mysql
net start mysql
mysql -uroot -p,然后输入密码,设置root用户密码。(注:刚安装的MySQL,默认密码为空!)
use mysql;
为root用户分配远程连接的相关权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
3。在D盘新建文件夹mysql-cluster,作为管理节点。例:D:\mysql-cluster\
在D:\mysql-cluster\下新建文件夹data(数据文件)和logs(数据日志)
在D:\mysql-cluster\下创建文件config.ini
4。将D:\mysql-cluster-gpl-7.4.17-winx64\bin\目录下的 ndb_mgmd.exe ,
复制到D:\mysql-cluster\下
三、配置
配置管理节点
D:\mysql-cluster路径下
config.ini
----------------------------------------------------------------------------------------------------------------------------
[NDBD DEFAULT]
#每个数据节点的镜像数量
NoOfReplicas=1
#每个数据节点的数据文件的目录
DataDir=D:/mysql-cluster/data
#每个数据节点中给数据分配的内存
DataMemory=120M
#每个数据节点中给索引分配的内存
IndexMemory=20M
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
#管理节点配置
[NDB_MGMD]
NodeId=1
HostName=192.168.1.1
#管理节点数据(日志)目录
DataDir=D:/mysql-cluster/logs
#数据节点配置
[NDBD]
NodeId=2
HostName=192.168.1.1
#数据节点目录
DataDir=D:/mysql-cluster-gpl-7.4.17-winx64/data
#SQL节点配置
[MYSQLD]
NodeId=3
HostName=192.168.1.1
[NDBD]
NodeId=4
HostName=192.168.1.2
datadir=D:/mysql-cluster-gpl-7.4.17-winx64/data
[MYSQLD]
NodeId=5
HostName=192.168.1.2
[MYSQLD]
#一定要留一个空的,以备扩展使用,
#否则会出现Failed to allocate nodeid No free node id found for ndbd(NDB)错误
----------------------------------------------------------------------------------------------------------------------------
配置数据节点
D:\mysql-cluster-gpl-7.4.17-winx64路径下
my.ini
----------------------------------------------------------------------------------------------------------------------------
#NDB集群节点
[mysql_cluster]
#管理节点的ip
ndb-connectstring=192.168.1.1
[ndbd]
#管理节点的ip
ndb-connectstring=192.168.1.1
----------------------------------------------------------------------------------------------------------------------------
配置SQL节点
D:\mysql-cluster-gpl-7.4.17-winx64路径下
my.ini
----------------------------------------------------------------------------------------------------------------------------
#SQL集群节点
[mysqld]
ndbcluster
ndb-connectstring=192.168.1.1
default-storage-engine=ndbcluster
----------------------------------------------------------------------------------------------------------------------------
其他主机的数据节点和SQL节点配置一样,只是ip地址不一样。
四、启动
1。启动管理节点
D:\mysql-cluster路径下执行命令行
ndb_mgmd.exe --configdir=d:\mysql-cluster --config-file=d:\mysql-cluster\config.ini --reload --initial
出现:
MySQL Cluster Management Server mysql-5.6.38 ndb-7.4.17
表示成功
如果出现:
Mixing of localhost (default for [NDBD]HostName) with other hostname(192.168.1.180) is illegal
则删除config.ini里多余的[ndbd]
2。启动数据节点
D:\mysql-cluster-gpl-7.4.17-winx64\bin\路径下执行命令
ndbd.exe --initial
初始化之后,只运行 ndbd.exe 即可。若带参数 –initial 运行,将使正常运行的群集系统中,数据节点的数据全部丢失。
3。启动SQL节点(管理和数据节点都启动后,再启动所有的SQL节点)
只需要正常启动mysql服务就可以了
如果有配置修改,则需要关闭后重新启动。可参考http://blog.csdn.net/zq33312757/article/details/51934879
4。查看集群信息
D:\mysql-cluster-gpl-7.4.17-winx64\bin\路径下执行命令
ndb_mgm.exe
ndb_mgm>show,查看配置
出现
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.1.1 (mysql-5.6.38 ndb-7.4.17, Nodegroup: 0, *)
id=4 @192.168.1.2 (mysql-5.6.38 ndb-7.4.17, Nodegroup: 1)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.1 (mysql-5.6.38 ndb-7.4.17)
[mysqld(API)] 3 node(s)
id=3 @192.168.1.1 (mysql-5.6.38 ndb-7.4.17)
id=5 @192.168.1.2 (mysql-5.6.38 ndb-7.4.17)
id=6 (not connected, accepting connect from any host)
表示成功
ndb_mgm> ndb_mgm -e shutdown,关闭SQL节点的服务
五、测试
对一个数据库进行操作,另一个数据会有同样的变化,表示搭建成功。
注意!表需要设置ndbcluster引擎
例:
建表时
create table user(
id mediumint unsigned not null auto_increment primary key,
name varchar(20) not null default ''
) engine = ndbcluster default charset utf8;
查看表结构
show table status from db_name where name='table_name';
修改表引擎
alter table table_name engine=ndbcluster;
修改表字符集编码
alter table table_name convert to character set utf8;