MySQL基础day07_mysql集群实例-MySQL 5.6

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

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>




本文转自 murongqingqqq  51CTO博客,原文链接:http://blog.51cto.com/murongqingqqq/1381923

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
存储 关系型数据库 MySQL
环比、环比增长率、同比、同比增长率 ,占比,Mysql 8.0 实例(最简单的方法之一)(sample database classicmodels _No.2 )
环比、环比增长率、同比、同比增长率 ,占比,Mysql 8.0 实例(最简单的方法之一)(sample database classicmodels _No.2 )
150 1
|
3月前
|
SQL 前端开发 关系型数据库
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
65 0
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
|
3月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
56 3
|
3月前
|
消息中间件 分布式计算 关系型数据库
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
64 0
|
2月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】启动与关闭MySQL数据库实例
MySQL数据库安装完成后,可以通过命令脚本启动、查看状态、配置开机自启、查看自启列表及关闭数据库。本文提供了详细的操作步骤和示例代码,并附有视频讲解。
|
3月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
102 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
3月前
|
存储 关系型数据库 MySQL
mysql 8.0 的 建表 和八种 建表引擎实例
mysql 8.0 的 建表 和八种 建表引擎实例
38 0
|
3月前
|
存储 关系型数据库 MySQL
Key_Value 形式 存储_5级省市城乡划分代码 (mysql 8.0 实例)
本文介绍了如何使用MySQL8.0数据库中的Key_Value形式存储全国统计用区划代码和城乡划分代码(5级),包括导入数据、通过数学函数提取省市区信息,以及查询5级行政区划的详细数据。
42 0
|
3月前
|
算法 关系型数据库 MySQL
复购率 mysql 实例(sample database classicmodels _No.1 )
复购率 mysql 实例(sample database classicmodels _No.1 )
35 0
|
3月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
112 0