在Windows环境下配置MySQL集群

前言



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

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

上图一共分了四层:Applications、SQL、Storage、Management。

如果您的英语不是体育老师教的的话,那么您肯定已经猜出来每一层的职责了:

—–Applications主要是指需要连接数据库的应用程序;

—–SQL中每一个mysqld都是一个sql节点,Applications需要通过连接sql节点来存储数据,您可以把它看成应用程序与数据库集群进行数据交换的大门

—–Storage有‘仓库’的意思,所以数据都是存在数据节点(ndbd)中的,而且每个数据节点的数据都是一致的,都是一整套最新的数据

—–Management中就是管理节点,一个MySQL中只有一个管理节点,用来管理其他节点

综上所述,一个MySQL集群中包括三种节点(不包括Applications):管理节点、数据节点,sql节点。


一、下载集群版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集群


1、在sql节点A建立数据库并插入数据:

在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节点重新启动时,会发现又重新连接到集群里了,而且每个数据节点的数据都是最新的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-05 09:25:57

在Windows环境下配置MySQL集群的相关文章

在windows环境下搭建mysql集群

1. 前(fei)言(hua) 最近实训老师给我们布置了一个建立mysql集群的任务,并扔了两个博客链接给我们参考,然后就没有然后了.根据老师给的博客上面的步骤试了一下,发现并不能成功建立,于是自己百度,找到了一个挺靠谱的博客,于是参考了一下,感觉总体还是不错的~ 靠谱的博客: http://blog.csdn.net/mazhaojuan/article/details/42211857 2. 理论基础知识 首先需要了解什么是管理节点.数据节点和SQL节点~ (1)管理结点:从名字可以看出来,

Windows环境下搭建rabbitmq集群与负载

欢迎提出意见及建议,发现错误请留言 需要的文件下载: 百度云:链接:https://pan.baidu.com/s/1gpZa2NjNxviEnihjS2Viuw  提取码:39hi  复制这段内容后打开百度网盘手机App,操作更方便哦 蓝奏云:下载:https://www.lanzous.com/i54x5da 密码:cgb9 参考博文: https://blog.csdn.net/elie_yang/article/details/86657851 https://blog.csdn.net

windows环境下搭建redis集群

Redis.Ruby语言运行环境.Redis的Ruby驱动redis-xxxx.gem.创建Redis集群的工具redis-trib.rb(注意:Redis集群需要至少3个以上节点,低于3个无法创建) 1.下载(zip格式)并安装Redis:(https://github.com/MSOpenTech/redis/releases/) 1)将下载到的Redis-x64-3.0.504.zip解压即可,为了方便使用,建议放在盘符根目录下,并修改目录名为Redis,如:D:\Redis 2)通过配置

在Windows中单机环境下创建RabbitMQ集群

本文根据:http://www.360doc.com/content/15/0312/17/20874412_454622619.shtml整理而来 RabbitMQ具有很好的消息传递性能,同时又是开源软件,使用范围较广. 因为自己使用的是Windows系统,因此简而言之入手点自然就是RabbitMQ提供的bat文件了.RabbitMQ提供了5个bat文件,分别是:rabbitmq-service.bat,rabbitmq-server.bat,rabbitmq-plugins.bat,rabb

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数据节

利用docker镜像配置mysql集群+nextcloud集群+haproxy负载均衡

测试环境: docker xampp 9.1.1 ubuntu 16.0.4 hadoop 2.7 jdk 1.8 一.配置mysql集群 通过docker拉取mysql集群镜像创建容器,包括ndb_mgm(管理节点).ndb_mgmd01.ndbd01(数据节点1).ndbd02(数据节点2).mysqld01(sql节点1).mysqld02(sql节点2) docker run -itd --name ndb_mgmd01 --net=scg --ip 192.166.0.2 -v /ro

0110-如何给Kerberos环境下的CDH集群添加Gateway节点

Fayson的github: https://github.com/fayson/cdhproject 推荐关注微信公众号:"Hadoop实操",ID:gh_c4c535955d0f,或者扫描文末二维码. 1.文档编写目的 Gateway节点又称为客户端节点,通常用作访问Hadoop集群的接口机.它主要会部署一些客户端的配置,脚本命令,比如HDFS的core-site.xml,hdfs-site.xml以及hadoop的操作命令. 如果你使用的是Apache Hadoop,你只需要将h

如何一步一步删除(linux & UNIX)环境下 oracle 11g 集群节点

 Deleting a Cluster Node on Linux and UNIX Systems 1.确定要删除的节点,是否active,pinned $ olsnodes -s -t 如果 pinned ,则crsctl unpin css  -n <nodename>  unpinned 相应的节点 2.禁用相应集群节点的应用资源,进程 先停掉 em: emctl stop dbconsole 以root 用户运行 在要删除节点的 $Grid_home/crs/install 路径

windows环境下配置tornado

1.前言 在网上看过一些在windows下配置tornado的教程,有一些写的十分复杂,让人望而生却.然后我就自己试着在windows下面配置tornado.我发现,方法非常简单,短短几步就能完成. 2.步骤 配置tornado的前提是你的windows已经安装了python,而且是2.x以上的版本.你可以到以下网址下载python for windows:https://www.python.org/downloads/,下载完毕点击运行即可 现在假设你的windows已经安装了python