1、服务器说明
两台windows服务器,简称服务器A、服务器B
管理节点:服务器A
数据节点:服务器A、服务器B
sql节点:服务器A、服务器B
(同一台机器同时存在数据节点与sql节点)
2、软件下载地址
下载 mysql cluster : https://downloads.mysql.com/archives/cluster/
注:
安装Mysql出现,系统错误
“由于找不到MSVCR120.dll,无法继续执行代码。重新安装程序可能会解决此问题”
或者
“由于找不到VCRUNTIME140_1.dll,无法继续执行代码。重新安装程序可能会解决此问题”
下载vcredist文件 选择相应的版本进行下载安装
3、配置说明
1、管理节点
在服务器A的机子上创建目录,并在 bin 目录下创建下以4个文件 ,cluster-logs及mysql-cluster 是个空文件夹(data文件夹无用),ndb_mgm.exe 及 ndb_mgmd.exe是从下载的 mysql cluster包里面的bin目录中拷贝
config.ini内容如下
[ndbd default]
#1:表示只有一份数据,但是分成n块分别存储在n个数据节点上。
#2:数据被分成n/2块,每块数据都有2个备份,这样即使有任意一个节点发生故障,
#只要它的备份节点正常,系统就可以正常运行
NoOfReplicas=2
IndexMemory=18M
DataMemory=80M
DataDir = D:\software\mysqlCluster\datanode\mysql\bin\cluster-data
[NDB_MGMD]
#管理节点服务器
NodeId=1
HostName=服务器A
# Storage Engines
DataDir=D:/software/mysql/cluster-logs
[NDBD]
NodeId=2
HostName=服务器A
[NDBD]
NodeId=3
HostName=服务器B
[MYSQLD]
NodeId=4
HostName=服务器A
[MYSQLD]
NodeId=5
HostName=服务器B
my.ini内容如下
[mysql_cluster]
# Options for management node process
config-file=D:/software/mysql/bin/config.ini
2、数据节点
在服务器A上创建如下目录 ,并新建 my.ini ,创建cluster-data目录,复制ndbd.exe(从下载的 mysql cluster包里面的bin目录中)
my.ini内容如下:
[mysql_cluster]
# Options for management node process
ndb-connectstring=管理节点服务器ip
3、sql节点
在服务器A上创建目录 D:\softwar\mysqlCluster\sqlnode\ , 复制 mysql-cluster-gpl-7.5.7-winx64 到 sqlnode 下 , 重命名 mysql-cluster-gpl-7.5.7-winx64 --> mysql , 创建 data 文件夹和my.ini
my.ini内容如下:
[mysqld]
ndbcluster
ndb-connectstring=管理节点服务器ip
注册 mysql 服务 , 注册成功在 windows 的服务里面多了一个 MySQL 的服务 (若服务已存在,请删除 mysqld --remove mysql )
以上命令必须以管理员身份运行。先初始化data目录:以前5.6版本自带data目录,不需要这一步!如果没有这一步会无法启动mysql服务,报错MYSQL 服务无法启动,在初始化之前,务必将data目录底下的文件删除掉。
mysqld --initialize-insecure : 自动生成无密码的root用户;
mysqld --initialize : 是自动生成随机密码用户;
因服务器B与服务器A配置一样, 所以可以 D:\software\mysqlCluster 复制到服务器B上(注册服务要再做一次)
4、启动
启动必须按顺序,管理节点 --> 数据节点 --> sql 节点
1、管理节点
2、数据节点: 服务器A / 服务器B
3、 sql节点: 服务器A / 服务器B
管理节点及数据节点正常开启后,只要sql节点的 MySQL 服务开启就能连上,net start mysql
全部运行完后可在管理节点的机子上查看连接状态
4、sql节点配置并测试
以上配置完成后,以Navicat工具进行测试
创建测试数据库
创建表 ( 注:ENGINE=ndbcluster )
新增修改数据查看两个库的数据变化