一、准备

集群:

192.168.1.191  管理节点
192.168.1.192  管理节点
192.168.1.193  数据节点和API节点  
192.168.1.194  数据节点和API节点

安装包:mysql-cluster-gpl-7.5.5-linux-glibc2.5-x86_64.tar.gz

二、安装

安装mysql管理节点

cd mysql-cluster-gpl-7.5.-linux-glibc2.-x86_64/

sudo cp bin/ndb_mgm* /usr/local/bin

cd /usr/local/bin

sudo mkdir /var/lib/mysql-cluster

sudo mkdir /usr/local/mysql

sudo vi /var/lib/mysql-cluster/config.ini 

sudo chmod -r 777 /var/lib/mysql-cluster/
sudo chmod -R 777 /usr/local/mysql/
config.ini的如下:
[ndbd default]
NoOfReplicas=
DataMemory=512M
IndexMemory=18M [ndb_mgmd]
HostName=192.168.1.191
DataDir=/var/lib/mysql-cluster
[ndb_mgmd]
HostName=192.168.1.192
DataDir=/var/lib/mysql-cluster
[ndbd]
HostName=192.168.1.193
DataDir=/var/lib/mysql-cluster [ndbd]
HostName=192.168.1.194
DataDir=/var/lib/mysql-cluster
191上执行:/usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
192上执行:/usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

成功如下:

测试:

cd /usr/local/bin

ndb_mgm

show

#为了保证数据节点等和管理节点通信 需要开启 1186 端口

 安装mysql数据节点 

192.168.1.193  数据节点
192.168.1.194  数据节点

sudo groupadd mysql

sudo useradd -g mysql -s /bin/false mysql

sudo mv mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64/ /usr/local/mysql

sudo mkdir /var/lib/mysql-cluster

 sudo chown root:mysql /var/lib/mysql-cluster

 sudo chmod -R 777 /var/lib/mysql-cluster/

 sudo vi /etc/my.cnf

my.cnf内容如下:

[client]
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
ndbcluster
ndb-connectstring=192.168.1.191
ndb-connectstring=192.168.1.192

[mysql_cluster]
ndb-connectstring=192.168.1.191
ndb-connectstring=192.168.1.192

cd /usr/local/mysql/

bin/ndbd --initial #数据节点初始化

测试:在管理节点上

cd /usr/local/bin

ndb_mgm

show

安装API(mysqld)节点

初始化mysql

cd /usr/local/mysql/

./bin/mysqld --initialize

会生成临时密码,记好临时密码,之后需要用到

support-files/mysql.server start #启动mysql
support-files/mysql.server status #查看mysql状

测试:在管理节点上

cd /usr/local/bin

ndb_mgm

show

最后的设置:在管理节点上

cd /usr/local/bin

ndb_mgm

shutdown #关掉 关掉管理节点和数据节点的服务

cd /usr/local/mysql
./bin/mysql -u root -p #随后输入密码 密码是之前生成的临时随机密码

修改root 密码,改远程访问,外部连接时 需要开启 3306端口

SET PASSWORD = PASSWORD('your new password');

use mysql;
update user set host = '%' where user = 'root'; #然后改远程访问
FLUSH PRIVILEGES;

启动集群:

ps:在数据节点没有全部启动之前, 不要启动API集群

#启动管理节点
/usr/local/bin/ ndb_mgmd #启动数据节点
cd /usr/loca/mysql/
./bin/ndbd #启动api节点
cd /usr/loca/mysql/
./support-files/mysql.server start

测试:

test同步成功,test01同步失败

默认数据库自动同步,创建表的时候主要选择数据引擎选择 ndbcluster 才会同步

暴力测试:

各种 kill 进程 ,只要有一个数据节点存活,数据都会同步和保存,当然前提是只要有个API节点存活,才可以访问。

Mysql分布式集群的更多相关文章

  1. MySQL分布式集群之MyCAT(转)

    原文地址:http://blog.itpub.net/29510932/viewspace-1664499/ 隔了好久,才想起来更新博客,最近倒腾的数据库从Oracle换成了MySQL,研究了一段时间 ...

  2. 如何搭建一个 MySQL 分布式集群

    1.准备集群搭建环境 使用6台虚拟机来搭建 MySQL分布式集群 ,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示: 管理节点(MGM):这类节点的作用是管理MySQLCluster内的 ...

  3. MySQL分布式集群之MyCAT(三)rule的分析【转】

    首先写在最前面,MyCAT1.4的alpha版本已经发布了,这里面修复了不少的bug,也完善了一细节,之前两篇博客已经做了一些修改 ---------------------------------- ...

  4. MySQL分布式集群之MyCAT(二)【转】

    在第一部分,有简单的介绍MyCAT的搭建和配置文件的基本情况,这一篇详细介绍schema的一些具体参数,以及实际作用        首先贴上自己测试用的schema文件,双引号之前的反斜杠不会消除,姑 ...

  5. MySQL分布式集群之MyCAT(一)简介【转】

    隔了好久,才想起来更新博客,最近倒腾的数据库从Oracle换成了MySQL,研究了一段时间,感觉社区版的MySQL在各个方面都逊色于Oracle,Oracle真的好方便!好了,不废话,这次准备记录一些 ...

  6. 抄来的,占个位儿【百度架构师是怎样搭建MySQL分布式集群】

    1.准备集群搭建环境 使用6台虚拟机来搭建MySQL分布式集群,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示:     管理节点(MGM):这类节点的作用是管理MySQLCluster ...

  7. mysql分布式集群实现原理

    做MySQL集群,例如:利用mysql cluster ,mysql proxy,mysql replication,drdb等等 有人会问mysql集群,根分表有什么关系吗?虽然它不是实际意义上的分 ...

  8. 【Database】Mysql分布式集群学习笔记

    一.sql 的基本操作 (2018年11月29日,笔记) (1)数据库相关操作 创建数据库.查看数据库.删除数据库 #. 创建数据库 create database mytest default ch ...

  9. MySQL Cluster 集群

    本文转载 http://www.cnblogs.com/gomysql/p/3664783.html MySQL Cluster是一个基于NDB Cluster存储引擎的完整的分布式数据库系统.不仅仅 ...

随机推荐

  1. 向php数组函数array_colum()传入奇怪的数组

    <?php // 向php数组函数array_colum()传入奇怪的数组 // array_colum()函数 返回行列数组的其中一列,可以用其他列的键充当键 $arr = [ [ 1, 2, ...

  2. python基础 — Queue 队列

    queue介绍 queue是python中的标准库,俗称队列. 在python中,多个线程之间的数据是共享的,多个线程进行数据交换的时候,不能够保证数据的安全性和一致性,所以当多个线程需要进行数据交换 ...

  3. 函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!闭包访问局部变量

    函数内部声明变量的时候,一定要使用var命令.如果不用的话,你实际上声明了一个全局变量! function f1(){ n=999; } f1(); alert(n); 子函数可以一层一层读取到父元素 ...

  4. 开源图像识别库OpenCV基于Maven的开发环境准备

    1.安装 JDK 8+,并设置 JAVA_HOME 环境变量 2.安装 Maven,并将 “/bin” 子目录设置到 path 环境变量 3.下载 OpenCV,官网传送门 也可以直接下载本人瘦身之后 ...

  5. 平衡二叉树,B树,B+树的概念及区别

    1.平衡二叉树   由来:平衡二叉树是基于二分法的策略提高数据的查找速度的二叉树的数据结构 特点: 1.二叉树:意思是每个节点最多只能有两个子节点 2.平衡:因为平衡二叉树的查询性能与树的高度成正比, ...

  6. gitlab异地备份并验证MD5值

    最近公司发生了蛮多事情的,唉,咱也不管问啊,好好干活吧 需求 把gitlab的备份文件异地备份一份,备份无论失败还是成功通知某邮箱 实现思路 先rsync文件过去,判断rsync这个步骤有没有成功,失 ...

  7. zubax_gnss简介

    参考:https://docs.zubax.com/zubax_gnss 目录结构 bootloader:主要功能是升级application.加载application和初始化application ...

  8. docker入门一:docker安装(在线跟离线)

    一.在线安装 1.安装依赖 yum install -y yum-utils device-mapper-persistent-data lvm2 2.添加软件源 yum-config-manager ...

  9. Python——迭代器&可迭代对象

    可迭代对象 什么是对象: Python中,一切皆对象.一个变量,一个列表,一个字符串,文件句柄,函数等等都可称为一个对象.一个对象就是一个实例,就是实实在在的东西. 什么是迭代 迭代就是一个重复的过程 ...

  10. linux下补丁制作和使用方法

    两个文件的情况: 制作补丁: $ diff test1.c test2.c > test.patch 给test1.c打补丁: $ patch test1.c < test.patch 还 ...