CentOS 6.5上安装MySQL-Cluster
参考博文:
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的更多相关文章
- 记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb
记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb 前段时间我个人Google服务器意外不能用,并且我犯了一件很低级的错误,直接在gcp讲服 ...
- 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 ...
- [原]CentOS 6.5 上安装 MySQL 5.6
参考文档: http://dev.mysql.com/doc/refman/5.6/en/linux-installation-yum-repo.html 1. 下载 rpm 文件:wget http ...
- CentOS 7.4上安装mysql 8.0
我的CentOS版本通过从cat /etc/centos-release查看得知 CentOS Linux release 7.4.1708 (Core) 因此需要yum删除mariadb,然后安装m ...
- 2、在VM上的 CentOS 6.5 上安装mysql
1.查看系统是否安装了MySQL 使用命令: #rpm -qa | grep mysql 2.卸载已安装的MySQL 卸载mysql命令如下: #rpm -e - ...
- 在centos上安装mysql
本文依然是用的xftp上传gz文件,然后在xShell上操作的,如果没有安装使用这两个文件的请查阅之前的博客. 1.将下载好的文件用xftp上传到对应的位置. 2.解压文件:tar -zvxf m ...
- 在CentOS Linux 7.5上安装MySQL
本文来自与https://www.linuxidc.com/Linux/2018-05/152574.htm 随着CentOS 7 MySQL的发布,世界上最流行的开源关系数据库管理系统在CentOS ...
- 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.安装 ...
- 在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 ...
随机推荐
- 一周学会Mootools 1.4中文教程:(2)函数
温故: 透过对上一节课的学习,相信大家对mt的选择器应该有了一定的认识了,我再放几个小示例让大家对选择器的复杂应用有所了解: <!DOCTYPE html PUBLIC "-//W3C ...
- Maven本地
<localRepository></localRepository>
- 转:详细解说 STL 排序(Sort)
详细解说 STL 排序(Sort) 详细解说 STL 排序(Sort) 作者Winter 详细解说 STL 排序(Sort) 0 前言: STL,为什么你必须掌握 1 STL提供的Sort 算法 1. ...
- php 登录实例演示
<pre name="code" class="python">一.模板的使用 (重点) a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主 ...
- 基于Visual C++2013拆解世界五百强面试题--题13-找最大公共子字符串
编程实现:找出两个字符串中最大公共子字符串,如"abccade"和"dgcadde"的最大子字符串为"cad". 如果不考虑效率的话直接比较 ...
- debian安装vld来查看Opcode,PHP调优。
一: 我的环境: Debian 7 (wheezy) x64 PHP 5.4.4-14 (apt-get 而来) Apache/2.2.22 (同上,非源码编译) 二 :安装vld. (# 代表是r ...
- Android清单文件具体解释(三)----应用程序的根节点<application>
<application>节点是AndroidManifest.xml文件里必须持有的一个节点,它包括在<manifest>节点下.通过<application>节 ...
- .net 常用方法
1.String数组转换成Int数组 string[] strArr = "a,b,c".Split(','); int[] intArr = Array.ConvertAll& ...
- Chrome插件Visual Event查看Dom元素绑定事件的利器
找这工具找了好久,统一找着了,开发人员不可多得的好东东,收藏做一下分享. 用Chrome插件Visual Event查看Dom绑定的事件 Visual Event简介 Visual Event是一个开 ...
- KMP算法的一个C++实现
本文参考阮一峰老师的KMP算法,重点是“部分匹配表”的建立.算法可参考 http://kb.cnblogs.com/page/176818/ . /* * kmp.cpp * Author: Qian ...