首页 > 数据库 > MySQL >

在Windows环境下配置MySQL集群

2015-08-17

前言 最近在项目中用到了MySQL集群,所以就和小伙伴们研究了两天。下面给大家分享一下成果。 小编始终觉得对新事物的学习,没有比看图这种方式更好地理解了。所以先来看一张mysql集群的架构图(摘自百度百科

前言


最近在项目中用到了MySQL集群,所以就和小伙伴们研究了两天。下面给大家分享一下成果。

小编始终觉得对新事物的学习,没有比看图这种方式更好地理解了。所以先来看一张mysql集群的架构图(摘自百度百科-MySQL Cluster):

这里写图片描述

上图一共分了四层:Applications、SQL、StZ喎"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcmFnZaGiTWFuYWdlbWVudKGjPGJyIC8+DQrI57n7xPq1xNOi0++yu8rHzOXT/cDPyqa9zLXEtcS7sKOsxMfDtMT6v8+2qNLRvq2ywrP2wLTDv9K7suO1xNaw1PDBy6O6PC9wPg0KPHA+Jm1kYXNoOyZuZGFzaDs8c3Ryb25nPkFwcGxpY2F0aW9uc9b30qrKx9a40OjSqsGsvdPK/b7dv+K1xNOm08OzzNDyo7s8L3N0cm9uZz48YnIgLz4NCiZtZGFzaDsmbmRhc2g7PHN0cm9uZz5TUUzW0MO/0ru49m15c3FsZLa8ysfSu7j2c3Fsvdq146OsQXBwbGljYXRpb25z0OjSqs2ouf3BrL3Tc3Fsvdq148C0tOa0osr9vt2jrMT6v8nS1LDRy/y/tLPJ06bTw7PM0PLT68r9vt2/4ryvyLq9+NDQyv2+3b27u7u1xLTzw8U8L3N0cm9uZz48YnIgLz4NCiZtZGFzaDsmbmRhc2g7PHN0cm9uZz5TdG9yYWdl09AmbHNxdW87sta/4iZyc3F1bzu1xNLiy7yjrMv50tTK/b7dtrzKx7Tm1NrK/b7dvdq146OobmRiZKOp1tC1xKOstvjH0sO/uPbK/b7dvdq147XEyv2+3ba8ysfSu9bCtcSjrLa8ysfSu9X7zNfX7tDCtcTK/b7dPC9zdHJvbmc+PGJyIC8+DQombWRhc2g7Jm5kYXNoOzxzdHJvbmc+TWFuYWdlbWVudNbQvs3Kx7ncwO292rXjo6zSu7j2TXlTUUzW0Na709DSu7j2udzA7b3ateOjrNPDwLS53MDtxuTL+73ateM8L3N0cm9uZz48L3A+DQo8cD7X28nPy/nK9qOs0ru49k15U1FMvK/IutbQsPzAqMj91ta92rXjo6iyu7D8wKhBcHBsaWNhdGlvbnOjqaO6udzA7b3ateOhosr9vt292rXjo6xzcWy92rXjoaM8L3A+DQo8aHIgLz4NCjxoMSBpZD0="一下载集群版mysql">一、下载集群版mysql

下载mysql-cluster-gpl-7.4.7-win32或mysql-cluster-gpl-7.4.7-winx64

下载地址:http://yunpan.cn/cd892RtysQ3Vk (提取码:45c8)
MySQL官网下载地址:http://dev.mysql.com/downloads/cluster/


二、配置MySQL集群

需要用三台机器(没有条件的朋友可以考虑用虚拟机),一台配置管理节点:另外两台每台配置一个数据节点和一个SQL节点(也可以用五台计算机,每台计算机配置一个节点):
管理节点:192.168.25.50
数据节点A:192.168.25.49
数据节点B:192.168.25.48
SQL节点A:192.168.25.49
SQL节点B:192.168.25.48

1、首先将下载压缩包解压到每台电脑的C:/mysql目录下:

这里写图片描述

当然放在其他盘的目录里也可以。

2、配置管理节点

在配置管理节点(192.168.25.50)的计算机上的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.25.50              # 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.25.49              # Hostname or IP address

[ndbd] 
# Options for data node "B":
HostName=192.168.25.48              # Hostname or IP address

[mysqld] 
# SQL node A options:
HostName=192.168.25.49              # Hostname or IP address

[mysqld] 
# SQL node B options:
HostName=192.168.25.48              # Hostname or IP address

3、配置数据节点

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

SQL节点不用任何配置,至此,整个MySQL集群就搭建完成了。

三、启动MySQL集群


启动MySQL集群时,有一个启动顺序:先启动管理节点,再启动数据节点,再启动sql节点。

1、启动管理节点:

在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

这里写图片描述

2、启动每个数据节点:

在cmd中运行如下命令:

c:\mysql\bin\ndbd.exe --ndb-connectstring=192.168.25.50

这里写图片描述

3、启动每个sql节点:

在cmd中运行如下命令:

c:\mysql\bin\mysqld.exe --ndbcluster --ndb-connectstring=192.168.25.50 --console

这里写图片描述

现在整个MySQL集群就已经启动了。

4、查看每个节点的状态:

在管理节点所在计算机上(192.168.25.50)打开ndb_mgm.exe,或者直接在cmd中运行

c:\mysql\bin\ndb_mgm

执行“show”命令,可以查看到每个节点的连接状态:

这里写图片描述

这就表明每个节点均连接正常。下面测试数据。

三、测试MySQL集群


在sql节点A的计算机上(192.168.25.49)的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.25.48)的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节点重新启动时,会发现又重新连接到集群里了,而且每个数据节点的数据都是最新的。

相关文章
最新文章
热点推荐