参考博文:

CentOS 6.2下MySQL Cluster 7.2 配置数据库集群

CentOS 6.5上安装MySQL-Cluster 7.3.4过程笔记--下一步学习

MySQL Cluster Installation 官方文档地址: http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-installation.html

Mysql Cluster7.4.6安装与配置  参考这篇博文配置

一、Mysql Cluster概述

MySql Cluster最显著的优点就是高可用性,高实时性,高冗余,扩展性强。

它允许在无共享的系统中部署"内存中"数据库的Cluster.通过无共享体系结构,系统能够使用廉价的硬件.此外,由于每个组件有自己的内存和磁盘,所以不存在单点故障.

它由一组计算机构成,每台计算机上均运行着多种进程,包括mysql服务器,NDB cluster的数据节点,管理服务启,以及专门的数据访问程序

所有的这些节点构成一个完整的mysql集群体系.数据保存在"NDB存储服务器"的存储引擎中,表(结构)则保存在"mysql服务器"中.应用程序通过"mysql服务器"访问这些数据表,集群管理服务器通过管理工具(ndb_mgmd)来管理"NDB存储服务器".

基本概念

"NDB"是一种"内存中"的存储引擎,它具有可用性高和数据一致性好的特点.下面介绍mysql cluster 节点时,它表示进程.在单台计算机上可以有任意数目的节点.

管理节点(MGM):这类节点的作用是管理mysql cluster内的其他节点,如配置文件和cluster 日志,启动并停止节点,运行备份等.cluster中的每个节点从管理服务器上检索配置数据,并请求管理服务器所在位置的方式.当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器上,然后,又将这类信息写入cluster日志。由于这类节点负责管理其他节点的配置,所以应在启动其他节点之前首先启动这类节点.MGM节点是用命令"ndb_mgmd"来启动

数据节点(NDB):这类节点用于保存cluster的数据.数据节点的数目与副本的数目相关,是片段的倍数.假设有2个副本,每个副本有2个片段,那么就有4个数据节点.不过没有必要设置多个副本.数据节点是用命令"ndbd"来启动的.

SQL节点:这是用来访问cluster数据的节点.对于MYSQL cluster来说,客户端节点是使用NDB cluster存储引擎的传统Mysql服务器.通常,sql节点使用将"ndbcluster"添加到"my.cnf"后使用"mysqld" 启动

此外,可以有任意数目的cluster客户端进程或应该程序.它们分为两种类型,即标准mysql客户端和管理客户端.

标准mysql客户端:能够从php,perl,c,c++,java,python,ruby等编写的现有mysql应用程序上访问mysql cluster

管理客户端:这类客户端与管理服务器相连,并提供了启动和停止节点,启动和停止消息跟踪,显示节点版本和状态,启动和停止备份等命令.

以下是mysql cluster 架构示意图:

由于Mysql Cluster采用的是TCP/IP方式连接,并且节点之间的数据传输没有加密,最后使用单独的子网里

为了方便 这里我把管理节点,数据节点,sql节点放在一台机器上.

管理节点1 192.168.239.128

数据节点1 192.168.239.128
数据节点2 192.168.239.130 sql节点1 192.168.239.128
sql节点2 192.168.239.130

二、Mysql Cluster下载安装

1.1下载安装

1、下载,这里为了方便安装过程,这里直接使用了RPM包来安装,避开了编译安装的痛苦:
 首先先到www.msyql.com下载如下的RPM安装包 (http://dev.mysql.com/downloads/cluster/);选择:Linux - Generic (注意:是  mysql-cluster-gpl-7.4.10-linux-glibc2.5-x86_64.tar.gz)

2、环境清理及安装

   清理CentOS6.5自带的mysql服务,其中第一个命令我不执行也可以,其他系统如果不可以,还是建议执行   参考:如何卸载rpm包

  ( 创建用户群,groupadd mysql , 创建用户,useradd -g mysql mysql  )

3、解压缩Mysql Cluster包到 /usr/local 注意权限设置

tar -C /usr/local -xzvf mysql-cluster-gpl-7.4.10-linux-glibc2.5-x86_64.tar.gz
cd /usr/local/
ln -s /usr/local/mysql-cluster-gpl-7.4.10-linux-glibc2.5-x86_64 /usr/local/mysql #这么改是因为 后续中 启动函数调用目录是 mysql
chown -R mysql:mysql /usr/local/mysql -R
cd mysql

  4、开始安装

scripts/mysql_install_db --user=mysql # 安装mysql-cluster
cp support-files/mysql.server /etc/rc.d/init.d/mysqld # 注册mysql的service chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
运行service mysqld start 即可启动mysql #暂时不启动

1.2 开始配置

一、管理节点安装步骤:

1.在管理节点服务器完成上述sql节点和ndb节点安装步骤后,输入cd /usr/local/mysql进入目录
2.cp bin/ndb_mgm* /usr/local/bin
3.cd /usr/local/bin
4.chmod +x ndb_mgm*

三、配置sql节点和ndb节点

mysql服务启动时会默认加载/etc/my.cnf作为其配置文件,要将一个mysql服务器配置成一个数据节点和SQL节点也非常的简单,这是配置前的my.cnf的内容:
1.[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data
user= mysql
log-error=/var/lib/mysql/mysqld.err

2.在此基础上在最下方分别加入以下语句:
a) 如果是NDB服务器的情况下输入:
ndbcluster
ndb-connectstring=192.168.239.128
b) 如果是SQL节点服务器的情况下输入
[mysql_cluster]
ndb-connectstring=192.168.239.128
注意所有服务器必须具有相同的配置

配置后my.cnf文件如下:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html [client]
port=3306
socket=/tmp/mysql.sock [mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data
user = mysql
log-error=/var/lib/mysql/mysqld.err # Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M # Disabling symbolic-links is recommended to prevent assorted security risks # Recommended in standard MySQL setup
ndbcluster
ndb-connectstring=192.168.239.128 [mysql_cluster]
ndb-connectstring=192.168.239.128 #[mysqld_safe]
#log-error=/var/lib/mysql/mysqld.err
#pid-file=/var/run/mysqld/mysqld.pid

三、管理节点服务器的配置

1.cd /var/lib
2.mkdir mysql-cluster
3.vi config.ini,创建配置文件
4.在config.ini文件中添加以下内容:(由于报错把注释去掉了 去掉注释的在后面)

[NDBD DEFAULT]
#每个数据节点的镜像数量
NoOfReplicas=1
#每个数据节点中给数据分配的内存
DataMemory=500M
#每个数据节点中给索引分配的内存
IndexMemory=300M [TCP DEFAULT]
#数据节点的默认连接端口
portnumber=2202 #配置管理节点
[NDB_MGMD]
#MGM1
hostname=192.168.239.128
#管理节点数据(日志)目录
datadir=/var/lib/mysql-cluster/ #数据节点配置
[NDBD]
#NDB1
hostname=192.168.239.128
#数据节点目录
datadir=/usr/local/mysql/data/ [NDBD]
#NDB2
hostname=192.168.239.130
datadir=/usr/local/mysql/data/ #SQL节点目录
[MYSQLD]
#SQL1
hostname=192.168.239.128 [MYSQLD]
#SQL2
hostname=192.168.239.130

//////////////启动时报错////////////////////////////////////////////////////////

2014-02-25 18:57:04 [MgmtSrvr] ERROR -- at line 1: Value specified outside section
2014-02-25 18:57:04 [MgmtSrvr] ERROR -- at line 1: Could not parse name-value pair in config file.
2014-02-25 18:57:04 [MgmtSrvr] ERROR -- Could not load configuration from '/usr/local/mysql/cluster-conf/config.ini'
2014-02-25 18:57:04 [MgmtSrvr] ERROR -- Could not determine which nodeid to use for this node. Specify it with --ndb-nodeid= on command line
检查是从window下copy到liux下,某些空格失效了。 后来把所有的注释写到单独一行好了 
////////////////////////////////////////////////////////////

修改错误后结果如下:  (使用id时报错:修改为:NodeId  )

[NDBD DEFAULT]
NoOfReplicas=1
DataMemory=300M
IndexMemory=100M
[TCP DEFAULT]
portnumber=2202
[NDB_MGMD]
NodeId = 1
hostname=192.168.239.128
datadir=/var/lib/mysql-cluster/
[NDBD]
NodeId = 2
hostname=192.168.239.128
datadir=/usr/local/mysql/data/
[NDBD]
NodeId = 3
hostname=192.168.239.130
datadir=/usr/local/mysql/data/
[MYSQLD]
NodeId = 4
hostname=192.168.239.128
[MYSQLD]
NodeId = 5
hostname=192.168.239.130

四、启动
1.管理节点的启动: (注意防火墙开启:3306 和 1186 端口)
a) Mysql cluster需要各个节点进行启动后方能够工作,节点的启动顺序为:管理节点——》NDB数据节点——》Sql节点。因此首先启管理节点
b) cd /usr/local/bin
c) ndb_mgmd -f /var/lib/mysql-cluster/config.ini
d) 注意以上为第一次配置的情况下,如果新增节点,使用./ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial  进行加载,不然添加的节点不会出现在集群中
e) 启动时可能会报个WARNING,如WARNING -- at line 7: [TCP] portnumber is deprecated,这个不用管。可以正常工作的。
f) 启动后可以使用 ndb_mgm -e show 查看运行状态

2.NDB节点的启动
a) cd /usr/local/bin 注意:如果目录下没有 从/usr/local/mysql/bin 下拷贝过来
b) ./ndbd --initial
c) 如果出现类似以下信息则表明成功连接到管理节点服务器:
2015-06-25 12:48:03 [ndbd] INFO -- Angel connected to 'MGM1:1186'
2015-06-25 12:48:03 [ndbd] INFO -- Angel allocated nodeid: 3

3.SQL节点的启动:
a) service mysqld start
//////////////启动时报错////////////////////////////////////////////////////////
Starting MySQL....................... ERROR! The server quit without updating PID file (/var/local/mysql/data/localhost.localdomain.pid).

[root@localhost bin]# ps -A|grep mysql
2336 ? 00:00:00 mysql-proxy
2340 ? 00:01:02 mysql-proxy
3047 ? 00:00:00 mysqld_safe
3150 ? 00:01:50 mysqld
[root@localhost bin]# kill 3150

后来发现是 my.cnf 中  datadir=/usr/local/mysql/data 写成了 datadir=/var/local/mysql/data   改过了就好了

////////////////////////////////////////////////////////////

4.客户端管理
a) 在管理服务器中输入cd /usr/local/bin/
b) ./ndb_mgm
c) 在ndb_mgm> 提示符下输入show:

ndb_mgm> show
ClusterConfiguration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @NDB1 (mysql-5.6.24 ndb-7.4.6,Nodegroup:0,Master)
id=3 @NDB2 (mysql-5.6.24 ndb-7.4.6,Nodegroup:1)
[ndb_mgmd(MGM)]1 node(s)
id=1 @MGM1 (mysql-5.6.24 ndb-7.4.6)
[mysqld(API)] 2 node(s)
id=4 @SQL1 (mysql-5.6.24 ndb-7.4.6)
id=5 @SQL2 (mysql-5.6.24 ndb-7.4.6)

我的显示如下:还有问题

[root@localhost mysql-cluster]# /usr/local/bin/ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: 192.168.239.128:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from 192.168.239.128)
id=3 (not connected, accepting connect from 192.168.239.130) [ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.239.128 (mysql-5.6.28 ndb-7.4.10) [mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from 192.168.239.128)
id=5 (not connected, accepting connect from 192.168.239.130)

5.关闭mysql cluster

a) cd /usr/local/bin
b) ./ndb_mgm -e shutdown
c) 虽然mysql cluster 关闭了,但是SQL节点的mysql服务并不会停止的。接下来就可以做各种试验了。

CentOS 6.5上安装MySQL-Cluster的更多相关文章

  1. 记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

    记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb 前段时间我个人Google服务器意外不能用,并且我犯了一件很低级的错误,直接在gcp讲服 ...

  2. CentOS 6.9上安装Mysql 5.7.18 安装

    CentOS 6.9上安装Mysql 5.7.18 安装 下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-g ...

  3. [原]CentOS 6.5 上安装 MySQL 5.6

    参考文档: http://dev.mysql.com/doc/refman/5.6/en/linux-installation-yum-repo.html 1. 下载 rpm 文件:wget http ...

  4. CentOS 7.4上安装mysql 8.0

    我的CentOS版本通过从cat /etc/centos-release查看得知 CentOS Linux release 7.4.1708 (Core) 因此需要yum删除mariadb,然后安装m ...

  5. 2、在VM上的 CentOS 6.5 上安装mysql

    1.查看系统是否安装了MySQL     使用命令:     #rpm -qa | grep mysql 2.卸载已安装的MySQL      卸载mysql命令如下:       #rpm -e - ...

  6. 在centos上安装mysql

    本文依然是用的xftp上传gz文件,然后在xShell上操作的,如果没有安装使用这两个文件的请查阅之前的博客. 1.将下载好的文件用xftp上传到对应的位置. 2.解压文件:tar  -zvxf  m ...

  7. 在CentOS Linux 7.5上安装MySQL

    本文来自与https://www.linuxidc.com/Linux/2018-05/152574.htm 随着CentOS 7 MySQL的发布,世界上最流行的开源关系数据库管理系统在CentOS ...

  8. centos 6.5下安装mysql+nginx+redmine 3.1.0 笔记

    centos 6.5下安装mysql+nginx+redmine 3.1.0 笔记 目录[-] 过程 1.安装RVM 2.利用rvm安装 Ruby 1.9.3 并设为默认 3.安装rails 4.安装 ...

  9. 在linux(CentOS-6.7_x86_64)上安装mysql成功记录

    查看linux服务器的yum源设置: [root@hadoop03 yum.repos.d]# cd /etc/yum.repos.d [root@hadoop03 yum.repos.d]# ll ...

随机推荐

  1. 创建android 模拟器并在cmd中打开

    因为在运行monkeyrunner之前必须先运行相应的模拟器或连接真机,否则monkeyrunner无法连接到设备,运行模拟器有两种方法:1.通过eclipse中执行模拟器 2.在CMD中通过命令调用 ...

  2. javascript 作用域链

    最近想整理一下js执行代码的一些知识,如果有出错的地方还请指正. 执行环境(Execution Context) 所有的javascript代码都是在一个执行环境中被执行的.它只是一种机制,用来完成运 ...

  3. 什么是core dump?(转)

    什么是Core Dump? 今天调试一个程序, 用到了core dump, 于是写出来, 记于此.什么是Core Dump?Core的意思是内存, Dump的意思是扔出来, 堆出来.开 发和使用Uni ...

  4. grunt切换下载源

    nrm 是一个 NPM 源管理器,允许你快速地在NPM 源间切换: 安装:npm install -g nrm 列出可选源:nrm ls 切换:nrm use taobao 测试所有源连接时间:nrm ...

  5. oracle10g安装图解(win7)

    一.Oracle10g 安装预备步骤取得 Oracle 10g 安装程序,或从 Oracle 技术网(OTN)下载光盘映像.在评估阶段您可以免费下载和使用无技术限制的全功能 Oracle,但在正式的商 ...

  6. C++ 用libcurl库进行http 网络通讯编程

      一.LibCurl基本编程框架libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议.libcur ...

  7. HDU 2215 Maple trees

    增量法的最小包围圈算法,不会…… #include <cstdio> #include <cstring> #include <iostream> #include ...

  8. 如何在同一系统中启动多个 TOMCAT

    <Server port="8005" shutdown="SHUTDOWN"> 接受server关闭指令的port号.我们叫关闭指令port. & ...

  9. linux命令: patch

    一. 针对单文件的patch: 我们以mkprj.sh.1和mkprj.sh两个文件为例: [root@localhost tst]# lsmkprj.sh.1  mkprj.sh 看两个文件的差异: ...

  10. php随笔11-Thinkphp常用系统配置大全

    Thinkphp常用配置  CHECK_FILE_CASE -- windows环境下面的严格检查大小写. /* 项目设定 */     'APP_DEBUG'    => false, // ...