mysql集群实例
原文地址:http://www.it165.net/database/html/201403/5678.html
http://www.cnblogs.com/seesea125/archive/2012/03/28/2421277.html
mysql集群
集群/群集:用一组服务器提供相同的服务
LB集群:负载均衡集群(多台服务器共同工作)
HA集群:高可靠集群(一个做备用)
一、mysql集群架构中的主机的角色:
|
类型 |
服务进程 |
主要用途 |
|
管理节点 |
ndb_mgmd |
提供集群配置,启动或停止节点, 执行备份、群集监控等任务 管理节点必须第一个启动 |
|
数据节点 |
ndbd (单线程) ndb_mtd (多线程) |
存储实际的表记录,可以有多个副本 推荐至少2个数据节点 |
|
SQL节点 |
mysqld |
可理解为支持NDB的标准MySQL服务器, 仅存储表结构、独立的用户授权 面向客户端提供用户鉴权、SQL查询等 访问服务 |
二、安装
不需要安装mysql-server软件了,所以可以关掉mysql服务
在集群中的所有主机上安装mysql-cluster集群软件
mysql-cluster软件提供3种进程:
1,mysqld进程:供用户访问和执行sql语句
2,数据进程ndbd:存储数据
3,管理进程mgmd:管理集群中的所有的主机
三、具体思路:
1,配置管理节点:server1
ip地址:192.168.1.1
mkdir/var/log/my-cluster
vim/etc/my-cluster.ini (该文件不存在,需要创建)
[ndbd default] //设置数据节点的默认参数
NoOfReplicas=2 //保留2份数据拷贝
DataMemory=80M //数据缓存大小
IndexMemory=18M //索引缓存大小
[ndb_mgmd] //设置管理节点
nodeid=1 //管理节点的标识
hostname=192.168.1.1 //管理节点的IP地址
datadir=/var/log/my-cluster //工作目录
[mysqld] //设置SQL节点server1
nodeid=2 //ID标识
hostname=192.168.1.20 //此节点的IP地址
[mysqld] //设置SQL节点server2
nodeid=3
hostname=192.168.1.30
[ndbd] //设置数据节点server4
nodeid=4 //ID标识
hostname=192.168.1.40 //此节点的IP地址
datadir=/var/log/mysql-cluster //工作目录
[ndbd] //设置数据节点server5
nodeid=5
hostname=192.168.1.50
datadir=/var/log/mysql-cluster
2,配置sql节点(server2,server3)
编辑sql节点的配置文件/etc/my.cnf(本身不存在,需要创建)
vim /etc/my.cnf
[mysqld]
ndbcluster //使用ndb集群引擎
default-storage-engine=ndbcluster //设置默认引擎
[mysql_cluster]
ndb-connectstring=192.168.1.1 //指定管理节点ip地址
server3上配置和server2相同
3,配置数据节点(server4,server5)
首先创建server1上配置文件指定的文件夹:
mkdir/var/log/mysql-cluster
然后给数据节点编辑配置文件(/etc/my.cnf 本身不存在,需要创建)
vim /etc/my.cnf
[mysqld]
datadir=/var/log/mysql-cluster //工作目录,在管理节点上配置文件指定的那个目录
ndb-connectstring=192.168.1.1 //管理本台主机的ip地址
ndbcluster //使用ndb集群存储引擎为ndbcluster
[mysql_cluster] //指定管理集群的主机
ndb-connectstring=192.168.1.1 //指定管理集群的ip地址
注:server4和server5上的配置一样
4,初始化授权库
5,启动所有server的服务
第一个:先启动管理主机上的管理进程
在server1上:
ndb_mgmd -f /etc/my-cluster.ini //启动管理进程的时候加载配置文件my-cluster.ini
ndb_mgm //登录
show //查看急群众所有主机的状态
关闭该进程使用:pkill-9 ndbd_mgmd
第二个:启动数据节点主机上的ndbd进程(server4、server5)
在server4和server5上:
ndbd //开启ndbd进程
如果想要关闭,使用kill杀死进程号或pkill杀死ndbd进程
第三个:启动sql节点(server2,server3)
启动mysql服务
service mysql start
MySQL集群配置示例:
环境:
server1:192.168.1.1
server2:192.168.1.20
server3:192.168.1.30
server4:192.168.1.40
server5:192.168.1.50
第一步:server1配置:
|
[root@server1 ~]# mkdir /var/log/my-cluster [root@server1 ~]# cat /etc/my-cluster.ini [ndbd default] NoOfReplicas=2 DataMemory=80M IndexMemory=18M [ndb_mgmd] nodeid=1 hostname=192.168.1.1 datadir=/var/log/my-cluster [mysqld] nodeid=2 hostname=192.168.1.20 [mysqld] nodeid=3 hostname=192.168.1.30 [ndbd] nodeid=4 hostname=192.168.1.40 datadir=/var/log/mysql-cluster [ndbd] nodeid=5 hostname=192.168.1.50 datadir=/var/log/mysql-cluster [root@server1 ~]# 注:ip地址为192.168.1.1 |
第二步:server2和server3的配置:
|
[root@server2 ~]# ifconfig | grep addr eth1 Link encap:Ethernet HWaddr 00:0C:29:22:B2:31 inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe22:b231/64 Scope:Link inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host [root@server2 ~]# vim /etc/my.cnf [root@server2 ~]# cat /etc/my.cnf [mysqld] ndbcluster default-storage-engine=ndbcluster [mysql_cluster] ndb-connectstring=192.168.1.1 [root@server2 ~]# 注:server3和server2配置相同,ip地址为192.168.1.30 |
第三步:server4和server5上的配置:
|
[root@server4 ~]# ifconfig | head -2 eth1 Link encap:Ethernet HWaddr 00:0C:29:B6:6A:99 inet addr:192.168.1.40 Bcast:192.168.1.255 Mask:255.255.255.0 [root@server4 ~]# vim /etc/my.cnf [root@server4 ~]# cat /etc/my.cnf [mysqld] datadir=/var/log/mysql-cluster ndb-connectstring=192.168.1.1 ndbcluster [mysql_cluster] ndb-connectstring=192.168.1.1 [root@server4 ~]# |
第四步:
|
首先启动管理主机server1 [root@server1 Desktop]# ndb_mgmd -f /etc/my-cluster.ini MySQL Cluster Management Server mysql-5.6.14 ndb-7.3.3 [root@server1 Desktop]# ndb_mgm -- NDB Cluster -- Management Client -- ndb_mgm> show Connected to Management Server at: localhost:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=4 (not connected, accepting connect from 192.168.1.40) id=5 (not connected, accepting connect from 192.168.1.50) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.1.1 (mysql-5.6.14 ndb-7.3.3) [mysqld(API)] 2 node(s) id=2 (not connected, accepting connect from 192.168.1.20) id=3 (not connected, accepting connect from 192.168.1.30) ndb_mgm> 然后再server4和server5上启动ndbd进程 server4: [root@server4 Desktop]# ndbd 2014-03-21 18:35:42 [ndbd] INFO -- Angel connected to '192.168.1.1:1186' 2014-03-21 18:35:42 [ndbd] INFO -- Angel allocated nodeid: 4 [root@server4 Desktop]# server5: [root@server5 Desktop]# ndbd 2014-03-21 19:57:10 [ndbd] INFO -- Angel connected to '192.168.1.1:1186' 2014-03-21 19:57:10 [ndbd] INFO -- Angel allocated nodeid: 5 [root@server5 Desktop]# 最后在server2和server3上开启mysql服务: [root@server2 ~]# service mysql restart Shutting down MySQL.... [ OK ] Starting MySQL..... [ OK ] [root@server2 ~]# [root@server3 Desktop]# service mysql restart Shutting down MySQL..... [ OK ] Starting MySQL.... [ OK ] [root@server3 Desktop]# 验证:在server1上通过show命令查看是否连接成功 ndb_mgm> show Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=4 @192.168.1.40 (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0, *) id=5 @192.168.1.50 (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.1.1 (mysql-5.6.14 ndb-7.3.3) [mysqld(API)] 2 node(s) id=2 @192.168.1.20 (mysql-5.6.14 ndb-7.3.3) id=3 @192.168.1.30 (mysql-5.6.14 ndb-7.3.3) ndb_mgm> |
mysql集群实例的更多相关文章
- Mysql集群搭建(多实例、主从)
1 MySQL多实例 一 .MySQL多实例介绍 1.什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307,3308),运行多个MySQL服务进程,通 ...
- 京东分布式MySQL集群方案介绍
背景 数据库作为一个非常基础的系统,任何一家互联网公司都会使用,数据库产品也很多,有Oracle.SQL Server .MySQL.PostgeSQL.MariaDB等,像SQLServer/Ora ...
- MySQL Cluster(MySQL 集群) 初试(转)
作/译者:叶金荣(imysql#imysql.com>),来源:http://imysql.com,欢迎转载. 作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请 ...
- MYSQL集群的搭建
按照此配置完全可以配置成功!! 一.介绍========测试环境:Server1:ndbd 192.168.1.225Server2:ndbd 192.168.1.226Server3:mysqld ...
- 分布式MySQL集群方案的探索与思考
转载:http://www.infoq.com/cn/articles/exploration-of-distributed-mysql-cluster-scheme?utm_campaign=rig ...
- MySQL集群(三)mysql-proxy搭建负载均衡与读写分离
前言 前面学习了主从复制和主主复制,接下来给大家分享一下怎么去使用mysql-proxy这个插件去配置MySQL集群中的负载均衡以及读写分离. 注意:这里比较坑的就是mysql-proxy一直没有更新 ...
- 「mysql优化专题」高可用性、负载均衡的mysql集群解决方案(12)
一.为什么需要mysql集群? 一个庞大的分布式系统的性能瓶颈中,最脆弱的就是连接.连接有两个,一个是客户端与后端的连接,另一个是后端与数据库的连接.简单如图下两个蓝色框框(其实,这张图是我在悟空问答 ...
- MySQL集群PXC的搭建
MySQL集群PXC的搭建 最近公司某客户要求我们的数据库搭建PXC集群以保证他们的系统高性能和搞稳定性 以后花费了一些时间去搭建和测试,也踩过一些坑,准备分享出来 系统:centos6.6PXC:5 ...
- 关于MySQL集群的一些看法
作者:Gary Chen链接:https://zhuanlan.zhihu.com/p/20204156来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 市面上的招聘往往 ...
随机推荐
- chrome设置--disable-web-security解决跨域
我们可以通过使用chrome命令行启动参数来改变chrome浏览器的设置,具体的启动参数说明参考这篇介绍.https://code.google.com/p/xiaody/wiki/ChromiumC ...
- 连贯接口(fluent interface)的Java实现及应用。
几年前在单元测试时使用mockito和junit(使用hamcrest提供的比较方法)的时候,就用到过这样类似的语法: mockito: when(mock.someMethod("some ...
- 20145215《Java程序设计》第3周学习总结
20145215<Java程序设计>第三周学习总结 教材学习内容总结 认识对象 类类型 在学习第三章的时候,我们知道Java可区分为基本类型和类类型两大类型系统,其中类类型也称为参考类型. ...
- spring cloud教程之使用spring boot创建一个应用
<7天学会spring cloud>第一天,熟悉spring boot,并使用spring boot创建一个应用. Spring Boot是Spring团队推出的新框架,它所使用的核心技术 ...
- Angular JS 学习笔记(自定义服务:factory,Promise 模式异步请求查询:$http,过滤器用法filter,指令:directive)
刚学没多久,作了一个小项目APP,微信企业号开发与微信服务号的开发,使用的是AngularJS开发,目前项目1.0版本已经完结,但是项目纯粹为了赶工,并没有发挥AngularJS的最大作用,这几天项目 ...
- 关于python中PIL的安装
python 的PIL安装是一件很蛋痛的事, 如果你要在python 中使用图型程序那怕只是将个图片从二进制流中存盘(例如使用Scrapy 爬网存图),那么都会使用到 PIL 这库,而这个库是出名的难 ...
- node 通用的中间件
为什么学习Node,因为他的门槛比较高一点,现在比较热门一点. 技术这种东西,用最短的时间学会了收益终身. 1.常用的中间件: // 通用的中间件 //bodyParser connect 内建的中间 ...
- promise与aysnc 与EventProxy
promise 已经是 es6推荐的内置的东西了,所以我们需要清楚. promise的使用类似与jquery的链式操作,.then() .then()中不断使用.回调看上去清晰明了,建议使用. as ...
- Beta版本冲刺总结
小组:The Expendables 本来这篇Beta版本的冲刺总结应该在演示前就要写的,但在演示前的几天我们小组还在对一些功能进行反复的测试和修改,所以就将冲刺总结延后再写. 一.项目预期计划 改进 ...
- iOS开发获取本机手机号码
最近有个奇葩需求,用户登录返回手机号匹配本机号码相同才可以登录,吓得我虎躯一震,经了解,iOS7后不越狱实现不了 "For security reasons, iPhone OS restr ...