【完美】Mysql-cluster数据库集群搭建(windows)

一、下载

官方下载地址:

https://dev.mysql.com/downloads/cluster/

选择相应的系统版本,选择zip格式

介绍:

《Mysql-cluster数据库集群介绍》


准备:

两台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;




你可能感兴趣的:(数据库)