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分布式集群之MyCAT(转)
原文地址:http://blog.itpub.net/29510932/viewspace-1664499/ 隔了好久,才想起来更新博客,最近倒腾的数据库从Oracle换成了MySQL,研究了一段时间 ...
- 如何搭建一个 MySQL 分布式集群
1.准备集群搭建环境 使用6台虚拟机来搭建 MySQL分布式集群 ,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示: 管理节点(MGM):这类节点的作用是管理MySQLCluster内的 ...
- MySQL分布式集群之MyCAT(三)rule的分析【转】
首先写在最前面,MyCAT1.4的alpha版本已经发布了,这里面修复了不少的bug,也完善了一细节,之前两篇博客已经做了一些修改 ---------------------------------- ...
- MySQL分布式集群之MyCAT(二)【转】
在第一部分,有简单的介绍MyCAT的搭建和配置文件的基本情况,这一篇详细介绍schema的一些具体参数,以及实际作用 首先贴上自己测试用的schema文件,双引号之前的反斜杠不会消除,姑 ...
- MySQL分布式集群之MyCAT(一)简介【转】
隔了好久,才想起来更新博客,最近倒腾的数据库从Oracle换成了MySQL,研究了一段时间,感觉社区版的MySQL在各个方面都逊色于Oracle,Oracle真的好方便!好了,不废话,这次准备记录一些 ...
- 抄来的,占个位儿【百度架构师是怎样搭建MySQL分布式集群】
1.准备集群搭建环境 使用6台虚拟机来搭建MySQL分布式集群,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示: 管理节点(MGM):这类节点的作用是管理MySQLCluster ...
- 分布式集群Session原理及实现共享
1.什么是Session/Cookie? 用户使用网站的服务,基本上需要浏览器与Web服务器的多次交互.HTTP协议本身是无状态的,当用户的第一次访问请求结束后,后端服务器就无法知道下一次来访问的还是 ...
- Mysql分布式集群
一.准备 集群: 192.168.1.191 管理节点192.168.1.192 管理节点192.168.1.193 数据节点和API节点 192.168.1.194 数据节点和API节点 安 ...
- 【Database】Mysql分布式集群学习笔记
一.sql 的基本操作 (2018年11月29日,笔记) (1)数据库相关操作 创建数据库.查看数据库.删除数据库 #. 创建数据库 create database mytest default ch ...
随机推荐
- 数据结构编程实验——chapter8-采用树结构的非线性表编程
关于树结构的非线性表编程在数据结构中可以说占据了半壁江山,其中涉及的知识点繁杂,但也是数据结构体现运算优化的核心所在,下面我们将较为初步且系统得讨论数据结构中一系列有关树的表示. 首先我们再次明确树的 ...
- 一道非常易错的js面试题
题目如下: function Foo() { getName = function() { alert(1); }; return this; } Foo.getName = function() { ...
- JHipster项目启动后默认的8080主页是空白页面?
1.背景 根据官网一步步地生成项目,他喵的启动后居然是一个空白页面,这怎么玩啊?还有这种操作的吗?跟说好的不一样啊!关于JHipster资料,国内少的可怜,几乎都是同一样的东西,纯介绍的文章,只好上s ...
- 文件操作fstream
c++文件操作详解 2009-04-16 20:46:35| 分类: C/C++|举报|字号 订阅 C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ost ...
- Vue项目按需打包Lodash
使用的是 webpack 模板 1. 首先安装 npm install lodash --save npm install lodash-webpack-plugin babel-plugin-lod ...
- 【NOI题解】【bzoj题解】NOI2008 bzoj1063 道路设计
@ACMLCZH学长出的毒瘤题T3.再也不是“善良”的出题人了. 题意:bzoj. 题解: 经典的树形DP题目,屡见不鲜了,然而我还是没有写出来. 这一类的题目有很多,例如这里的C题. 主要套路是把对 ...
- v8-su-root
1.下载userdebug版本 2.设置模块打开develop options 3.勾选usb debugging 4.adb remount 5.解压SuperSU_N.7z(联系我索取)并push ...
- aarch64_m2
mingw32-leptonica-1.74.4-1.fc26.noarch.rpm 2017-06-12 17:20 1.0M fedora Mirroring Project mingw32-le ...
- MySQL 5.6 GTID Replication【转】
一. MySQL 5.6引入了GTID的概念,那么GTID是何方神圣?其实也不复杂,就是一个全局事务标示符.使用GTID时,每次事务提交都会在binlog里生成1个唯一的标示符,它由UUID和事务ID ...
- C基础 旋转数组查找题目
前言 - 引言 题目: 一类有序数组旋转查值问题. 例如: 有序数组 [ , , , , , , , , ] 旋转后为 [ , , , , , , , , ] 如何从中找出一个值索引, not fou ...