你的位置:首页 > 数据库

[数据库]Windows环境配置MySQL集群


 

 

 

Windows环境配置MySQL集群

 

一、Cluster环境搭建

1、mysql Cluster(MySQL Cluster 7.5.4)文件下载地址:http://dev.mysql.com/downloads/cluster/

2、准备三台服务器(虚拟机,本人使用的是Windows Server 2008 R2 enterprise),一台用于配置管理节点,另外两台每台配置一个数据节点和一个SQL节点:

管理节点:192.168.108.128
数据节点A:192.168.108.129
数据节点B:192.168.108.130
SQL节点A:192.168.108.129
SQL节点B:192.168.108.130

3、将下载压缩包解压到每台电脑的C:/mysql目录下(其他盘也可以)

在管理节点C:\Mysql\Bin目录下建立cluster-logs和config两个文件夹cluster-logs用来存储日志文件,在config文件夹中建立my.ini和config.ini两个配置文件:

my.ini

[mysql_cluster]
# Options for management node process
config-file=C:/mysql/bin/config/config.ini

config.ini

[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2 # Number of replicas
DataDir=C:/mysql/bin/cluster-data # Directory for each data node's data files # Forward slashes used in directory path, # rather than backslashes. This is correct; # see Important note in text
DataMemory=80M # Memory allocated to data storage
IndexMemory=18M # Memory allocated to index storage # For DataMemory and IndexMemory, we have used the # default values. Since the "world" database takes up # only about 500KB, this should be more than enough for # this example Cluster setup.
[ndb_mgmd]
# Management process options:
HostName=192.168.108.128 # Hostname or IP address of management node
DataDir=C:/mysql/bin/cluster-logs # Directory for management node log files
[ndbd]
# Options for data node "A":
HostName=192.168.108.130 # Hostname or IP address
[ndbd]
# Options for data node "B":
HostName=192.168.108.129 # Hostname or IP address
[mysqld]
# SQL node A options:
HostName=192.168.108.130 # Hostname or IP address
[mysqld]
# SQL node B options:
HostName=192.168.108.129 # Hostname or IP address

 

4、在配置数据节点(192.168.108.129、192.168.108.130)的计算机上的C:\Mysql\Bin目录下建立cluster-data文件夹,用来存放数据

 

5、至此,环境安装完成

 

 

二、Cluster集群启动

1、关闭防火墙

 

2、开启管理工具

CMD命令:c:\mysql\bin\ndb_mgmd.exe --configdir=c:\mysql\bin\config --config-file=c:\mysql\bin\config\config.ini --ndb-nodeid=1 --reload –initial

 

 

3、开启数据节点(注:必须以管理员运行dos,否则报错)

CMD命令:c:\mysql\bin\ndbd.exe --ndb-connectstring=192.168.108.128

 

 

4、执行命令初始化mysql命令添加data目录(巨坑

CMD命令:C:\mysql\bin\mysqld --initialize-insecure --user=mysql

 

6、在管理服务器查看开启状态

CMD命令:C:\mysql\bin\ndb_mgm.exe

 

 

7、注意,所有命令最好用管理员权限打开dos环境执行,启动MySql Cluster集群的时候里面有两大坑,第一大坑是一定得关闭防火墙,第二大坑就是mysql需要初始化

至此,环境搭建完成,可以进入下一步测试、使用。

 

三、测试MySql 集群

1、在sql节点A的计算机上(192.168.108.129)的cmd中运行C:\mysql\bin\mysql.exe -u root -p命令登录mysql,接下来需要输入密码时,密码默认为空(直接回车)。

 

创建数据库并插入数据:
—–创建名为”MySQL_Cluster_Test”的数据库:

 create database MySQL_Cluster_Test;


—–创建表”T_User”:

 use MySQL_Cluster_Test;
create table T_User(Name varchar(32),Age int) engine=ndbcluster;

注意建表语句后面一定要加上 engine=ndbcluster

 

—–插入数据:

 insert into T_User values('DannyHoo',26);

—–查询数据:

select * from T_User;

 

这里写图片描述

 

2、在sql节点B也可以查询到数据。

 

同样在sql节点B的计算机上(192.168.108.130)的cmd中运行C:\mysql\bin\mysql.exe -u root -p命令登录mysql。

 

执行 show databases; 命令可以查看到在sql节点A新建的数据库;
执行use MySQL_Cluster_Test;
    select * from T_User;
可以查询到在sql节点A插入的数据。

 

这里写图片描述

 

 

    到这里,整个集群的搭建和测试就完成了。假如一个数据节点宕机,并不会影响整个集群的运行,任何一个数据节点死掉甚至物理损坏都不用担心,因为每个数据节点保存的数据都是完整的一份数据(在你操作数据的时候,它早就自动为你把最新的数据备份到每一个数据节点上啦)。你可以测试一下,这时手动停止某个数据节点和sql节点,另外一个数据节点和sql节点还会正常运行。当你把停止的数据节点和sql节点重新启动时,会发现又重新连接到集群里了,而且每个数据节点的数据都是最新的。