mysql分布式如何实现原理_mysql分布式集群实现原理
分布式集群
做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分布式集群实现原理相关推荐
- mysql数据库集群 主主复制 原理_MySql搭建集群 之 主主复制(双主代从)MYSQL数据库...
作者:VEPHP 时间 2017-09-27 <MySql搭建集群 之 主主复制(双主代从)MYSQL数据库>要点: 本文介绍了MySql搭建集群 之 主主复制(双主代从)MYSQL数 ...
- mysql cluster 宕机 恢复_mysql cluster 集群恢复不起来,还请大神赐教?报错-问答-阿里云开发者社区-阿里云...
mysql cluster 集群原本使用的几乎全是内存表,后来随着数据的增长,把大的内存表迁移到磁盘表了,之后集群出现6050错误,整个集群挂掉:之后重新启动集群一直启动不起来... ----以下是集 ...
- 分布式一致性协议 Gossip 和 Redis 集群原理解析
分布式一致性协议 Gossip 和 Redis 集群原理解析 Redis 是一个开源的.高性能的 Key-Value 数据库.基于 Redis 的分布式缓存已经有很多成功的商业应用,其中就包括阿里 A ...
- redis cluster 集群 HA 原理和实操(史上最全、面试必备)
文章很长,建议收藏起来慢慢读!疯狂创客圈总目录 语雀版 | 总目录 码云版| 总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 经典图书:<Java高并发核心编程(卷1)> 面试必备 ...
- Zookeeper集群一致性原理(强一致性)
@T- CZookeeper集群一致性原理(强一致性) 强一致性,弱一致性,最终一致性概念 强一致性概念 步骤1修改了userName为beid- uxing,步骤2读到的结果也一定是为beid- u ...
- MySQL主从架构、读写分离、集群相关面试问题
文章目录 一.MySQL主从同步原理 二.MySQL主从集群面试相关问题 1.全库同步与部分同步 2.GTID同步集群 3.集群扩容与MySQL数据迁移 4.理解半同步复制 5.主从集群与读写分离 6 ...
- Redis综述篇:与面试官彻夜长谈Redis缓存、持久化、淘汰机制、哨兵、集群底层原理!...
点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 于哥你好,最近面试挺多的,尤其是在问到java面试题,Redis被问的特别多,比如Red ...
- (7)达梦DMDSC数据共享集群核心技术原理介绍
在上一篇博客里面我们对达梦数据库的DM数据守护(Data Watch)的读写分离集群进行了技术原理学习并动手部署实践.本篇技术分享文章是关于达梦DMDSC集群的相关技术原理. DM共享存储数据库集群的 ...
- K8s 从懵圈到熟练-集群伸缩原理
作者 | 声东 阿里云技术专家 <关注公众号,回复 排查 即可下载电子书> <深入浅出 Kubernetes>一书共汇集 12 篇技术文章,帮助你一次搞懂 6 个核心原理,吃 ...
- redis 集群 分片 扩容_Redis高可用之集群实现原理
概要:本文主要用于介绍Redis集群实现的原理,以及集群中的主从切换.副本漂移.分片迁移的原理 1 Redis集群实现的原理 集群是用来提供横向扩展能力,即当数据量增多以后,通过增加服务节点就可以扩展 ...
最新文章
- (linux中alias的用法)给一些常用的长命令取别名
- weexapp 开发流程(一)开发环境配置
- Python实现迭代器协议
- 安全行业中的event与incident区别
- 质数(Prime_Number)
- 如何使用PHP编写daemon process
- 使用Dozer框架进行Bean操作
- sql server 2008 r2卸载重装_免费下载:Intouch软件、Windows操作系统、SQL数据库,VB6.0、C#...
- 想要成为真正优秀的程序员是不是真的很难?
- python comprehension_python list comprehension在一次迭代中产生两个值
- A+B in Hogwarts (20)
- linux环境编程做的是什么,Linux环境
- 在网页中嵌入Base64编码文件
- 【MyBatis笔记】09-一对多关系建表
- js 基础之Math对象
- 比较三个数,求最大数字 ( 应用条件运算符:?)
- Java快捷键标识符入门学习
- 【论文笔记-5】Spatial Transformer Networks(STN)
- 01_Snaker简介
- eclipse的plugins导入hadoop-eclipse-plugin-2.6.0.jar后Preference下没有hadoop Map/Reduce的解决方法
热门文章
- 解决无法打开B站网页问题
- 爬虫出现UnicodeEncodeError: ‘latin-1‘ codec can‘t encode character *** in position 8328: Body***问题
- Nvicat Premium连接腾讯云数据库TDSQL-C(原CynosDB)
- PyTorch开发者福音, OpenVINO整合PyTorch实现推理加速!
- 百度地图实现自定义搜索
- 1、zstack协议栈
- Java——判断回文
- JavaScript实现异步请求并发数限制
- HT66F2390/STM32——AM2320温湿度传感器
- 简单说下HTTP代理、HTTPS代理、SOCKS代理的原理区别,charles抓包HTTPS原理