经典Mysql-cluster数据库集群搭建(windows)

来源:互联网 发布:mac版yy怎么录音 编辑:程序博客网 时间:2024/05/23 01:19

一、下载

官方下载地址:

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

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

介绍:

       集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。

        MySQL集群技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障。



       一个mysql集群包含三个节点:管理节点,数据节点和sql节点。

       启动顺序为:管理节点,数据节点,sql节点。

       管理节点只能一个,数据节点和sql节点可以根据需要设置个数。

       管理节点:(也可以称管理服务器)主要负责管理数据节点和SQL节点,还有集群配置文件和集群日志文件。它监控其他节点的工作状态,能够启动、关闭或重启某个节点。其他节点从管理节点检索配置数据,当数据节点有新事件时就把事件信息发送给管理节点并写入集群日志。

       数据节点:负责存储数据

       SQL节点:通过它进行sql操作。


准备:

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




原创粉丝点击