分布式架构3:MySQL集群(Mysql Cluster7.5.5)
分布式架构3:MySQL集群(Mysql Cluster7.5.5)
查看mysql版本
mysqlcluster与mysql 版本对照表
准备
硬件:3台服务器
管理服务器:192.168.1.4
节点服务器(包括数据节点及SQL节点):A:192.168.1.5;B:192.168.1.6
下载MySQLCluster: https://downloads.mysql.com/archives/installer/
配置
1. 管理服务器
C盘创建mysql文件夹,mysql\bin文件夹,mysql\cluster-logs 空文件夹,mysql\mysql-cluster 空文件夹
mysql\bin下拷贝ndb_mgm.exe、ndb_mgmd.exe(来源:mysql-cluster-gpl-7.5.5-winx64\bin)
mysql\bin下创建my.ini、config.ini
my.ini 内容如下
[mysql_cluster] # Options for management node process config-file=C:/mysql/bin/config.ini
config.ini 内容如下
[NDBD DEFAULT] #1: 表示只有一份数据,但是分成n块分别存储在n个数据节点上。2:数据被分成n/2块,每块数据都有2个备份,这样即使有任意一个节点发生故障,只要它的备份节点正常,系统就可以正常运行 NoOfReplicas=2 DataDir=D:/mysqlcluster/datanode/mysql/bin/cluster-data DataMemory=80M IndexMemory=18M [MYSQLD DEFAULT] [NDB_MGMD DEFAULT] [TCP DEFAULT] [NDB_MGMD] Nodeid=1 #管理节点服务器 HostName=192.168.1.4 # Storage Engines DataDir=C:/mysql/cluster-logs [NDBD] #MySQL集群db1的IP地址 Nodeid=2 HostName=192.168.1.5 [NDBD] #MySQL集群db1的IP地址 Nodeid=3 HostName=192.168.1.6 [MYSQLD] #MySQL集群db2的IP地址 Nodeid=4 HostName=192.168.1.5 [MYSQLD] #MySQL集群db2的IP地址 Nodeid=5 HostName=192.168.1.6
2. 节点服务器(A节点配置拷贝至B节点,注意清空数据)
D盘创建文件夹mysqlcluster,创建子文件夹datanode、sqlnode
my.ini 文件内容
[mysql_cluster] # Options for data node process: ndb-connectstring=192.168.1.4
my.ini 文件内容
[mysqld] # Options for mysqld process: ndbcluster # run NDB storage engine ndb-connectstring=192.168.1.4 # location of management server
注册 mysql 服务 , 注册成功在 windows 的服务里面多了一个 MySQL 的服务 (若服务已存在,请删除 mysqld --remove mysql )
mysq服务卸载(管理员身份运行cmd)
d:
cd D:\mysqlcluster\datanode\mysql\bin
net stop mysql
cd D:\mysqlcluster\sqlnode\mysql\bin
mysqld --remove mysql
mysqld --initialize-insecure : 自动生成无密码的root用户;
mysqld --install
当出现这样的错误时,清空数据
数据节点B(192.168.1.6) 同上
启动:必须按顺序,管理节点 --> 数据节点 --> sql 节点
管理节点 (192.168.1.4)
cd c:\mysql\bin
ndb_mgmd -f c:\mysql\bin\config.ini --configdir=c:\mysql\mysql-cluster
(重新加载 config.ini 可加 --reload 参数)
数据节点A(192.168.1.5)
d:
cd D:\mysqlcluster\datanode\mysql\bin
net start mysql (管理身份启动mysql服务)
ndbd (普通身份)
数据节点B(192.168.1.6) 同上
测试
连接成功
管理节点(192.168.1.4)
子节点测试
A节点(192.168.1.5)
d:
cd D:\mysqlcluster\sqlnode\mysql\bin
mysql -u root -p
create database test_db11;
use test_db11;
CREATE TABLE `country` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '国家id',
`country_code` varchar(20) NOT NULL COMMENT '国家代码',
`name` varchar(20) NOT NULL COMMENT '国家名称',
PRIMARY KEY (`id`),
UNIQUE KEY `id_UNIQUE` (`id`),
UNIQUE KEY `country_code_UNIQUE` (`country_code`),
UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=ndbcluster DEFAULT CHARSET=utf8 COMMENT='国家';
insert into country(country_code,name) values("003","EN");
B节点查询(192.168.1.6)
use test_db11;
select * from country;
参考: https://www.cnblogs.com/leohe/p/6729014.html