VM1:192.168.220.102 管理节点(MGM)
VM2:192.168.220.103 数据节点(NDBD1),SQL节点(SQL1)
VM3:192.168.220.104 数据节点(NDBD2),SQL节点(SQL2)
MySQL Cluster版本:7.4.6 (MSI Installer) 下载地址:http://dev.mysql.com/downloads/cluster/
测试工具:Navicate for MySQL
三种节点:
管理节点:用于管理集群共它节点; 守护进程ndb_mgmd
数据节点:用于保存集群的数据; 守护进程ndbd
SQL节点:用于连接数据节点;守护进程mysqld
解释一下 管理节点是负责管理数据节点和SQL节点的相当于集群的大脑, 数据节点是专门负责集群存储数据的, SQL节点说白了就是给你工具连接用的。
第一步先配置管理节点,把现在下来的安装包安装好以后。
到根目录 C:Program FilesMySQLMySQL Cluster 7.4 下面添加一个配置文件 配置如下
[ndbd default]
NoOfReplicas=2
MaxNoOfTables=1024
MaxNoOfUniqueHashIndexes=1024
MaxNoOfOrderedIndexes=1024
MaxNoOfAttributes=10000
[ndb_mgmd]
NodeId=1
HostName=192.168.220.102
DataDir=C:Program FilesMySQLMySQL Cluster 7.4data
[ndbd]
NodeId=21
HostName=192.168.220.103
DataDir=C:Program FilesMySQLMySQL Cluster 7.4data
[ndbd]
NodeId=22
HostName=192.168.220.104
DataDir=C:Program FilesMySQLMySQL Cluster 7.4data
[mysqld]
NodeId=11
HostName=192.168.220.103
[mysqld]
NodeId=12
HostName=192.168.220.104
请看的人一定要按照我上面的配置来进行配置,千万别去乱改文件夹名称。更不要去随意添加目录,因为笔者看了网上很多傻逼博文就是随意添加目录修改目录名
最后把本来很清晰的目录结构搞的混乱不堪,导致后面出了一大堆错。现在已经是凌晨1点了,忙到现在都是因为这些SB博主XJBG的结果。
废话不多说按照上面的配置好以后,看下下面定义节点的意思。总之就是1个管理节点 2个数据节点 2个SQL节点。
[NDBD]:定义了集群的数据节点
[MYSQLD]:定义了集群的MySQL服务器节点
[MGM]或[NDB_MGMD]:定义了集群的管理服务器节点
[NDB_MGMD]Id:节点唯一的标识
[NDBD]NoOfReplicas:全局参数仅能在[NDBD DEFAULT]中设置,它定义了集群中每个表保存的副本数。该参数还指定了节点组的大小。节点组指的是保存相同信息的节点集合
[NDBD]DataDir:该参数指定了存放跟踪文件、日志文件、 pid文件以及错误日志的目录
[MYSQLD]basedir:使用指定目录作为根目录
[MYSQLD]datadir:使用指定目录读取数据库文件
上面配置好以后基本就完成了一大部分了,下面来配置数据节点和SQL节点。在一般情况 数据节点和SQL节点是成对出现的。意思就是一台Mysql服务器是由两个节点构成。下面来看看怎么配置一台集群下的Mysql 服务器:
首先将下载的 MySQL Cluster 7.4 安装好,然后找到根目录C:Program FilesMySQLMySQL Cluster 7.4 然后添加一个名为my.ini 的配置文件。配置内容如下
[mysqld] character_set_server=utf8basedir="C:Program FilesMySQLMySQL Cluster 7.4"datadir="C:Program FilesMySQLMySQL Cluster 7.4data"sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESndbcluster ndb-connectstring=192.168.220.102explicit_defaults_for_timestamp=true[mysql_cluster] ndb-connectstring=192.168.220.102
这里简单说一下,其实就是配置SQL节点和数据节点的管理服务器是哪台服务器。这里我们直接配置成我们开始设置好的管理节点服务器地址就行了,记住
basedir 和 datadir 不要填错了不然运行会出现各种奇葩错误,在这里我很想喷一下我之前看到的那些SB博文。居然不把这里说清楚,不说清楚就算了压根没这段配置而且下面也只有[mysql_cluster] 数据节点没有SQL节点 我操尼玛 SQL节点被你们吃了吗?就知道到处复制粘贴真尼玛鸡巴害死老子了。这个地方一定要配置好这两个配置节 [mysql_cluster] 和 [mysqld]。
以上就是所有的配置了,就这么简单就搞定了接下来我们来一个个的启动。
启动的顺序是 1:管理节点 2:数据节点 3:SQL节点
1: 192.168.220.102 打开命令行窗口,然后按照下面给的命令 一行一行的输。
cd "C:Program FilesMySQLMySQL Cluster 7.4in"
ndb_mgmd.exe --config-file="C:Program FilesMySQLMySQL Cluster 7.4config.ini" --configdir="C:Program FilesMySQLMySQL Cluster 7.4"
上述命令执行成功后CMD会自动输出一段 MySQL Cluster Management Server mysql-5.6.24 ndb-7.4.6,我就不截图了麻烦。
执行完上面的命令后记住别关闭当前这个执行命令的窗口,然后从新打开一个CMD命令窗口。关掉的是SB 别问我为什么,因为老子被那些傻逼博文害惨了。
2:192.168.220.103或者192.168.220.104 打开命令行窗口,然后输入下面的命令。
cd "C:Program FilesMySQLMySQL Cluster 7.3in"
ndbd.exe --initial
执行成功以后CMD返回信息差不多是下面这样的,
2015-05-28 23:28:06 [ndbd] INFO -- Angel connected to '192.168.2.73:1186'
2015-05-28 23:28:06 [ndbd] INFO -- Angel allocated nodeid: 22
3:192.168.220.103或者192.168.220.104 打开命令行窗口,输入下面的命令。
cd "C:Program FilesMySQLMySQL Cluster 7.4in" mysqld.exe --default-file="C:Program FilesMySQLMySQL Cluster 7.4my.ini" mysqld --install net start mysql
记住哦一行一行的输入,第二行回车以后会有点慢千万别关掉CMD窗口。老子开始就以为是我弄错了卡死了然后关了他妈的结果前功尽弃从头来过而且还不知道错哪里。
最终成功后 CMD返回的内容差不多如下:
2015-05-28 23:29:02 0 [Note] mysqld.exe (mysqld 5.6.24-ndb-7.4.6-cluster-gpl) starting as process 2868 ...
Service successfully installed.
MySQL 服务正在启动 ..
MySQL 服务已经启动成功。
把192.168.220.103和192.168.220.104都设置好以后 然后切换到192.168.220.102 新开一个命令窗口千万别关闭之前正在运行的管理节点命令窗口不然你就是SB。
然后在新开的命令窗口下输入如下命令:
ndb_mgm.exe
show
记住还是一行一行的输入ndb_mgm.exe是一行 show也是一行。
最后成功的返回结果应该是下面这个样子的:
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=21 @192.168.220.103 (mysql-5.6.24 ndb-7.4.6, Nodegroup: 0, *)
id=22 @192.168.220.104 (mysql-5.6.24 ndb-7.4.6, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.220.102 (mysql-5.6.24 ndb-7.4.6)
[mysqld(API)] 2 node(s)
id=11 @192.168.220.103 (mysql-5.6.24 ndb-7.4.6)
id=12 @192.168.220.104 (mysql-5.6.24 ndb-7.4.6)
剩下的就是测试了,随便下载一个navicat 连接192.168.220.104 和 192.168.220.103 这两个 SQL节点,就和平常连接Mysql 一样的。然后自己玩
妈的下班回家了,写完都快2点了我靠。。。。。。。。
我只想说那些复制粘贴的麻烦看看是不是对的再贴行吗?把老子折腾死了你们这群小婊砸