分布式架构3:MySQL集群(Mysql Cluster7.5.5)

分布式架构1:Nginx实现负载均衡

分布式架构2:Nginx下Session存储

分布式架构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

 

posted @ 2021-07-19 21:45  CHHC  阅读(707)  评论(0编辑  收藏  举报