分布式集群

做mysql集群,例如:利用mysql cluster ,mysql proxy,mysql replication,drdb等等

有人会问mysql集群,根分表有什么关系吗?虽然它不是实际意义上的分表,但是它启到了分表的作用,做集群的意义是什么呢?为一个数据库减轻负担,说白了就是减少sql排队队列中的sql的数量,举个例子:有10个sql请求,如果放在一个数据库服务器的排队队列中,他要等很长时间,如果把这10个sql请求,分配到5个数据库服务器的排队队列中,一个数据库服务器的队列中只有2个,这样等待时间是不是大大的缩短了呢?这已经很明显了。所以我把它列到了分表的范围以内,我做过一些mysql的集群:

linux mysql proxy 的安装,配置,以及读写分离

mysql replication 互为主从的安装及配置,以及数据同步

优点:扩展性好,没有多个分表后的复杂操作(php代码)

缺点:单个表的数据量还是没有变,一次操作所花的时间还是那么多,硬件开销大。

集群资料:http://www.th7.cn/db/mysql/201409/72633.shtml

ex:

1:

Windows server 2003 192.168.119.88(管理节点,存储节点,SQL节点)

Windows server 2003 192.168.119.87(存储节点,SQL节点)

2、安装程序

在两台机器上面同时进行

(1)在mysql cluster官网:

中下载msi安装软件mysql-cluster-gpl-7.4.11-win32.msi

可能需要oracle用户注册后下载

安装完成后

(2)在命令行中切换到mysql安装后bin目录下执行:

mysqld --install mysql注册服务

(3)设置环境变量:

将mysql安装后bin目录添加到环境变量中。

3、创建配置文件

(1)在10.135.10.51上创建c:/cluster/config.ini文件,内容为:

[ndbd default]

NoOfReplicas=2

[ndb_mgmd] #管理节点

NodeId=1

HostName=192.168.119.88

DataDir=c:/cluster/data

[ndbd] #数据节点

NodeId=21

HostName=192.168.119.88

DataDir=c:/cluster/ndbdata

[ndbd] #数据节点

NodeId=22

HostName=192.168.119.87

DataDir=c:/cluster/ndbdata

[mysqld] #sql节点

NodeId=11

HostName=192.168.119.88

[mysqld] #sql节点

NodeId=12

HostName=192.168.119.87

注意:在88机器c:/cluster目录下创建data和ndbdata目录。在87机器c:/cluster目录下创建ndbdata目录。

(2)在两台机器上创建mysql配置文件my.ini

在mysql cluster安装目录下找到my-default.ini文件,复制到当前目录并重命名为my.ini。

在my.ini尾部添加如下内容:

[mysql_cluster]

ndb-connectstring=192.168.119.88

[mysqld]

ndbcluster

ndb-connectstring=192.168.119.88

4、启动mysqlcluster(在192.168.119.88中执行)

(1)打开新cmd窗口

ndb_mgmd.exe --config-file=c:/cluster/config.ini--configdir=c:/cluster

(2)打开新cmd窗口

ndbd.exe --initial        /*首次执行时加入--initial参数*/

(3)打开新cmd窗口

mysqld.exe--default-file="C:/ProgramFiles/MySQL/MySQL Cluster 7.4/my.ini"

执行完成后启动mysql:

net start mysql

5、在192.168.119.87中执行:

打开新cmd窗口:

ndbd.exe

打开新cmd窗口

mysqld.exe--default-file="C:/ProgramFiles/MySQL/MySQL Cluster 7.4/my.ini"

执行完成后启动mysql:

net start mysql

6、查看安装情况

在192.168.119.88或192.168.119.87上打开cmd窗口,执行

ndb_mgm.exe

ndb_mgm>show

如图所示。

其中,MGM为管理节点,API(mysqld)为SQL节点,NDB为数据节点。

7.在任意一台机器上使用Navicat创建一张存储引擎为ndbcluster的表,并在表中添加一些测试数据。在另外一台机器上查看,可以看到数据库已经同步。

注意点:

1:DataDir=c:/cluster/ndbdata目录必须要创建不要写错会导致问题

2:mysql安装完成后,手动注册服务mysqld --install mysql注册服务

3:远程登录mysql的授权语句;初始化时用户root密码为空。

GRANT ALL PRIVILEGES ON *.*TO 'root'@'192.168.118.130' WITH GRANT OPTION;

4:创建表语句

CREATETABLE `test` (

`id` varchar(32) NOT NULL,

`name` varchar(32) NOT NULL

) ENGINE=ndbcluster DEFAULTCHARSET=latin1

成功截图

mysql分布式如何实现原理_mysql分布式集群实现原理相关推荐

  1. mysql数据库集群 主主复制 原理_MySql搭建集群 之 主主复制(双主代从)MYSQL数据库...

    作者:VEPHP   时间 2017-09-27 <MySql搭建集群 之 主主复制(双主代从)MYSQL数据库>要点: 本文介绍了MySql搭建集群 之 主主复制(双主代从)MYSQL数 ...

  2. mysql cluster 宕机 恢复_mysql cluster 集群恢复不起来,还请大神赐教?报错-问答-阿里云开发者社区-阿里云...

    mysql cluster 集群原本使用的几乎全是内存表,后来随着数据的增长,把大的内存表迁移到磁盘表了,之后集群出现6050错误,整个集群挂掉:之后重新启动集群一直启动不起来... ----以下是集 ...

  3. 分布式一致性协议 Gossip 和 Redis 集群原理解析

    分布式一致性协议 Gossip 和 Redis 集群原理解析 Redis 是一个开源的.高性能的 Key-Value 数据库.基于 Redis 的分布式缓存已经有很多成功的商业应用,其中就包括阿里 A ...

  4. redis cluster 集群 HA 原理和实操(史上最全、面试必备)

    文章很长,建议收藏起来慢慢读!疯狂创客圈总目录 语雀版 | 总目录 码云版| 总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 经典图书:<Java高并发核心编程(卷1)> 面试必备 ...

  5. Zookeeper集群一致性原理(强一致性)

    @T- CZookeeper集群一致性原理(强一致性) 强一致性,弱一致性,最终一致性概念 强一致性概念 步骤1修改了userName为beid- uxing,步骤2读到的结果也一定是为beid- u ...

  6. MySQL主从架构、读写分离、集群相关面试问题

    文章目录 一.MySQL主从同步原理 二.MySQL主从集群面试相关问题 1.全库同步与部分同步 2.GTID同步集群 3.集群扩容与MySQL数据迁移 4.理解半同步复制 5.主从集群与读写分离 6 ...

  7. Redis综述篇:与面试官彻夜长谈Redis缓存、持久化、淘汰机制、哨兵、集群底层原理!...

    点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 于哥你好,最近面试挺多的,尤其是在问到java面试题,Redis被问的特别多,比如Red ...

  8. (7)达梦DMDSC数据共享集群核心技术原理介绍

    在上一篇博客里面我们对达梦数据库的DM数据守护(Data Watch)的读写分离集群进行了技术原理学习并动手部署实践.本篇技术分享文章是关于达梦DMDSC集群的相关技术原理. DM共享存储数据库集群的 ...

  9. K8s 从懵圈到熟练-集群伸缩原理

    作者 | 声东  阿里云技术专家 <关注公众号,回复 排查 即可下载电子书> <深入浅出 Kubernetes>一书共汇集 12 篇技术文章,帮助你一次搞懂 6 个核心原理,吃 ...

  10. redis 集群 分片 扩容_Redis高可用之集群实现原理

    概要:本文主要用于介绍Redis集群实现的原理,以及集群中的主从切换.副本漂移.分片迁移的原理 1 Redis集群实现的原理 集群是用来提供横向扩展能力,即当数据量增多以后,通过增加服务节点就可以扩展 ...

最新文章

  1. (linux中alias的用法)给一些常用的长命令取别名
  2. weexapp 开发流程(一)开发环境配置
  3. Python实现迭代器协议
  4. 安全行业中的event与incident区别
  5. 质数(Prime_Number)
  6. 如何使用PHP编写daemon process
  7. 使用Dozer框架进行Bean操作
  8. sql server 2008 r2卸载重装_免费下载:Intouch软件、Windows操作系统、SQL数据库,VB6.0、C#...
  9. 想要成为真正优秀的程序员是不是真的很难?
  10. python comprehension_python list comprehension在一次迭代中产生两个值
  11. A+B in Hogwarts (20)
  12. linux环境编程做的是什么,Linux环境
  13. 在网页中嵌入Base64编码文件
  14. 【MyBatis笔记】09-一对多关系建表
  15. js 基础之Math对象
  16. 比较三个数,求最大数字 ( 应用条件运算符:?)
  17. Java快捷键标识符入门学习
  18. 【论文笔记-5】Spatial Transformer Networks(STN)
  19. 01_Snaker简介
  20. eclipse的plugins导入hadoop-eclipse-plugin-2.6.0.jar后Preference下没有hadoop Map/Reduce的解决方法

热门文章

  1. 解决无法打开B站网页问题
  2. 爬虫出现UnicodeEncodeError: ‘latin-1‘ codec can‘t encode character *** in position 8328: Body***问题
  3. Nvicat Premium连接腾讯云数据库TDSQL-C(原CynosDB)
  4. PyTorch开发者福音, OpenVINO整合PyTorch实现推理加速!
  5. 百度地图实现自定义搜索
  6. 1、zstack协议栈
  7. Java——判断回文
  8. JavaScript实现异步请求并发数限制
  9. HT66F2390/STM32——AM2320温湿度传感器
  10. 简单说下HTTP代理、HTTPS代理、SOCKS代理的原理区别,charles抓包HTTPS原理