说是搭建集群,由于只有一台电脑,所以只能在我的电脑上解说一下。
在mysql cluster中存在三种节点,管理节点,数据节点,SQL节点。管理节点的作用是管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。数据节点用于保存 Cluster的数据,简单来说就是数据的物理文件存放位置。SQL节点主要是用来给外界访问的。
按照我理解的现状,我们的应用通过SQL节点来访问集群,并把数据提交给管理节点,而添加的数据是由管理节点来更新到数据节点。整个结构如图。
嗯,差不多就这样吧,因为理解的也不是很深,理论部分就说这些了,然后就是怎么搭建这个集群了。
搭建的工作还是比较简单的,毕竟Mysql已经把大部分的功能都做好了,我们只需要配置一些文件,然后把各个节点链接到管理节点就行了。
首先来定义一下我们的各个节点的IP。
管理节点:192.168.0.199
数据节点A:192.168.0.200
数据节点B:192.168.0.201
SQL节点A:192.168.0.202
SQL节点B:192.168.0.203
然后解压我们在官网上下的Mysql Cluster压缩包。在每台电脑上解压,就解压到C盘吧,比较好写配置文件。在解压的文件夹中有一个Bin文件夹,在这个文件夹下面建立一个cluster-logs文件夹,用来保存集群的日志。建立一个config文件夹,用来存放配置文件。
在这个config文件夹下开始建立文件,首先是一个my.ini,里面的代码是这样的,制定是集群读取的配置文件是哪一个
[mysql_cluster]
# Options for management node process
config-file=C:/mysql/bin/config/config.ini
然后就是config.ini,这里配置的是管理节点的一些配置,还有可以连接到这个管理节点的各个节点IP
[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 对于数据存储和索引存储大小,mysql有默认值,自从发现‘世界’数据库只占用了大约500kb
# 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.24.199 # Hostname or IP address of management node 管理节点的主机名称或IP地址
DataDir=C:/mysql/bin/cluster-logs # Directory for management node log files 管理节点的日志存储地址
[ndbd]
# Options for data node "A": 数据节点A的设置项
# (one [ndbd] section per data node) 一个[ndbd]标签代表一个数据节点
HostName=192.168.24.200 # Hostname or IP address
DataDir= C:/data
[ndbd]
# Options for data node "B":
HostName=192.168.24.201 # Hostname or IP address
[mysqld]
# SQL node A options: SQL节点A的设置项
HostName=192.168.24.202 # Hostname or IP address
[mysqld]
# SQL node B options:
HostName=192.168.24.203 # Hostname or IP address
配置完成之后,就可以启动管理节点了。在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
管理节点启动之后就可以把其他节点链接到管理节点上了,这个链接的顺序是有讲究的,先连数据节点,再连SQL节点。
那么我们在200,201两台电脑上运行指令。让他们链接199的管理节点。
c:\mysql\bin\ndbd.exe --ndb-connectstring=192.168.24.199
最后在202,203两台电脑上运行命令
c:\mysql\bin\mysqld.exe --ndbcluster --ndb-connectstring=192.168.24.199 --console
这样就算执行了所有的链接了,之后我们可以在c:\mysql\bin\ndb_mgmd.exe中查看,打开这个文件,输入show然后回车,就能看到这种场景。毕竟没有5台电脑给我玩,只能盗个图了- -。