您的位置:首页 > 数据库 > MySQL

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

2017-12-18 16:04 916 查看
一、下载
官方下载地址:
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: