重要说明:mysql-cluste与非集群时用的mysql-server与mysql-client没有任何关系,mysql-cluste安装包中已自带了集群用的server与client,启动mysql也是启动mysql-cluste中的mysql,与原先的mysql-server没有任何关系。

一:基本概念

“NDB” 是一种“内存中”的存储引擎,也是事务型存储引擎,具备ACID属性。

管理(MGM)节点:负责管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令“ndb_mgmd”启动的。

数据节点:用于保存 Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。数据节点是用命令“ndbd”启动的。

SQL节点:用来访问 Cluster数据的节点。也就是Mysql服务,可以使用service mysqld start启动。

管理服务器(MGM节点)负责管理 Cluster配置文件和 Cluster日志。 Cluster中的每个节点从管理服务器检索配置数据,并请求确定管理服务器所在位置的方式。当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后,将这类信息写入 Cluster日志。

二:mysql-cluste安装包下载

mysql-cluste官方下载地址:http://dev.mysql.com/downloads/cluster/

本文测试下载的版本是linux 64位的tar包

三:集群配置概述

安装版本:mysql cluster 7.4.13

操作系统 :centos6.5(X64)

软件名称 :mysql-cluster-gpl-7.4.13-linux-glibc2.5-x86_64.tar.gz (通用版)

管理节点IP:192.168.1.240

数据节点-SQL节点IP:192.168.1.238

数据节点-SQL节点IP:192.168.1.248

四:安装

不需要安装mysql-server软件了,所以可以关掉mysql服务

在集群中的所有主机上安装mysql-cluster集群软件

mysql-cluster软件提供3种进程:

1,mysqld进程:供用户访问和执行sql语句

2,数据进程ndbd:存储数据

3,管理进程mgmd:管理集群中的所有的主机

安装mysql-cluster,集群中的每台服务都要安装

groupadd mysql

useradd mysql -g mysql

tar xvf mysql-cluster-gpl-7.4.13-linux-glibc2.5-x86_64.tar.gz

mv mysql-cluster-gpl-7.4.13-linux-glibc2.5-x86_64 /usr/local/mysql

cd /usr/local/mysql

./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql

chown -R mysql:mysql mysql

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

为便于以后启动mysql服务,我们接着做如下步骤:

复制配置文件

[root@localhost mysql] cp support-files/my-default.cnf /etc/my.cnf

h.  将mysqld服务加入开机自启动项。

*首先需要将scripts/mysql.server服务脚本复制到/etc/init.d/,并重命名为mysqld。

[root@localhostmysql]  cp support-files/mysql.server /etc/init.d/mysqld

会有提示是否覆盖,输入yes

这样就可以用 service mysqld start  service mysqld restart service mysqld stop

*通过chkconfig命令将mysqld服务加入到自启动服务项中,这一步就不做了,因为mysql集群启动是有顺序的,sql节点要最后启动。

[root@localhost mysql]#chkconfig --add mysqld

*注意服务名称mysqld就是我们将mysql.server复制到/etc/init.d/时重命名的名称。

*查看是否添加成功

[root@localhost mysql]#chkconfig --list mysqld

mysqld   0:off 1:off        2:on        3:on        4:on        5:on        6:off

mysql客户端启动:

为了避免每次都输入mysql的全路径/usr/local/mysql/bin/mysql,可将其加入环境变量中,在vi /etc/profile最后加入两行命令:

MYSQL_HOME=/usr/local/mysql

export PATH=$PATH:$MYSQL_HOME/bin

修改好后再执行source /etc/profile

这样就可以在shell中直接输入mysql命令来启动客户端程序了

五:管理节点配置

vi /etc/mysql-cluster.ini (该文件不存在,需要创建,文件名可随便命名)

文件内容如下:

[NDBD DEFAULT]

NoOfReplicas=2 #定义在Cluster环境中相同数据的份数,最大为4

DataMemory=200M #每个数据节点中给数据分配的内存

IndexMemory=20M #每个数据节点中给索引分配的内存

MaxNoOfAttributes=20480 #该参数用于设置簇中触发程序对象的最大数目。该参数的默认值为768,不修改建表时可能会报708错误

[NDB_MGMD]

NodeId=1

#设置管理节点服务器

HostName=192.168.1.240

DataDir=/usr/local/mysql/data

[NDBD]

NodeId=2

#设置存储节点服务器(NDB节点)

HostName=192.168.1.238

DataDir=/usr/local/mysql/data

[NDBD]

NodeId=3

#第二个NDB节点

HostName=192.168.1.248

DataDir=/usr/local/mysql/data

[MYSQLD]

NodeId=4

HostName=192.168.1.238

[MYSQLD]

NodeId=5

HostName=192.168.1.248

启动(必须用参数“-f”告诉 ndb_mgm 配置文件所在位置,默认是在ndb_mgmd相同目录下)

cd  /usr/local/mysql/bin

./ndb_mgmd -f /etc/mysql-cluster.ini

./ndb_mgmd -f /etc/mysql-cluster.ini --initial  (#--initial:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时)

启动成功后会显示当前mysql-cluster的信息

通过netstat -lntpu或者ps -aux |grep ndb_mgmd查看是否启动成功

让管理节点开机自动启动:以下路径根据自己实际的来。

vi /etc/rc.d/rc.local

加入下面的内容:

/usr/local/mysql/bin/ndb_mgmd -f /etc/mysql-cluster.ini

六:数据节点与sql节点的配置

在238与248服务上做。

vi /etc/my.cnf

增加如下内容:

[mysqld]

ndbcluster #使用ndb集群引擎

ndb-connectstring=192.168.1.240 #指定管理集群的ip地址,多个以,分隔

default-storage-engine=ndbcluster #设置默认引擎

#user=mysql

#log-error=/usr/local/mysql/mysqld.err

#指定管理集群的ip地址,多个以,分隔

[mysql_cluster]

ndb-connectstring=192.168.1.240

在每台存储节点(ndbd)服务器上,如果是第一次启动ndbd进程的话,必须先执行以下命令:

cd /usr/local/mysql/bin

./ndbd --initial  #注意,仅应在首次启动ndbd时,或在备份/恢复数据或配置文件发生变化后重启ndbd时使用“--initial”参数。因为该参数会使节点删除由早期ndbd实例创建的、用于恢复的任何文件,包括用于恢复的日志文件。

如果不是第一次启动,直接运行如下命令即可:

cd /usr/local/mysql/bin

./ndb

启动后的效果:

查看是否启动成功:

netstat -lntpu或者ps -aux |grep ndbd

关闭数据节点:

启动sql节点:

service mysqld start

启动sql节点成功后,修改下mysql的连接为任意ip,然后再设置连接的用户名为root,密码为test,这样客户端工具SQLyog等就可以连接到mysql服务上了。

新安装的mysql密码是空的。

./mysql -u root -p

use mysql

SELECT `Host`,`User` FROM user;

UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;

FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'test' WITH GRANT OPTION;

SELECT `Host`,`User` FROM user;

七:查看集群状态

启动顺序:

管理节点 -> 数据节点 -> SQL节点

关闭顺序:

SQL节点 -> 数据节点 -> 管理节点

数据节点与sql节点都启动成功后在管理节点上查看集群状态。

cd /usr/local/mysql/bin

./ndb_mgm -e show

示例如下:已全部连接成功的

或者

如果节点已确认启动并且配置无误,还是not connected那就试下关闭防火墙与selinux。

可能原因:防火墙开启,阻止集群数据通信;关闭防火墙:service iptables stop;

关闭 selinux:setenforce 0;

管理和维护命令:

cd /usr/local/mysql/bin

关闭mysql集群: pkill -9 ndbd_mgmd

启动mysql集群:./ndb_mgmd -f /var/lib/mysql-cluster/config.ini

启动SQL节点:./mysqld_safe --user=mysql & 或 service mysqld restart

查看mysql状态:./ndb_mgm -e show

八:测试集群

创建数据库表,简单查看配置效果:

由于为分布式集群,所以,在Mysql中创建的表的存储引擎必须修改为:NDB Cluster,否则数据不会同步到其他节点服务器上。

以下建表与插入数据在一台服务上操作,操作后直接查看其他节点中的mysql,可以看到数据库、表、数据都会同步的。

先创建个数据库mytest

CREATE TABLE tb_city(

id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

NAME VARCHAR(20) NOT NULL DEFAULT '')

ENGINE = NDBCLUSTER DEFAULT CHARSET utf8mb4;

INSERT INTO tb_city VALUES(1, 'city1');

INSERT INTO tb_city VALUES(2, 'city2');

INSERT INTO tb_city VALUES(3, 'city3');

示例如下

九:更改表的ENGINE

ALTER TABLE tablename ENGINE=NDBCLUSTER

示例:

ALTER TABLE tb_bank ENGINE=NDBCLUSTER

集群的每一张表必须修改ENGINE = NDBCLUSTER

十:jdbc连接

原先配置:jdbc:mysql://192.168.1.238:3306/palm_2_0_16

集群后配置:jdbc:mysql:loadbalance://192.168.1.238:3306,192.168.1.248:3306/palm_2_0_16?roundRobinLoadBalance=true

mysql-cluste多少钱,mysql-cluster集群相关推荐

  1. mysql galera 脑裂_galera cluster集群的分裂与仲裁机制

    集群的分裂 当集群由于网络原因分裂为几个单独的组时(一组可能是单节点,也可能是几个互联的节点),数据出现不一致,此时可能产生脑裂及数据不一致.这种情况下,只有一组节点能够继续提供服务,这组节点的状态是 ...

  2. MySQL Cluste(进阶篇)—集群配置

    目录 前言 1 概念脑补 1.1 节点组 1.2 分区 1.3 副本 1.4 联系 2 重启类型信息表 3 管理节点配置 3.1 NodeId 3.2 HostName 3.3 LogDestinat ...

  3. mysql 集群 备份_mysql cluster集群备份还原

    在MySQL Cluster集群上,可以在管理节点上使用start backup命令实现数据库的在线备份,在还原时可以使用ndb_restore命令来进行数据库的还原. 使用MySQL Cluster ...

  4. mysql cluster_redislt;3.cluster集群模式gt;

    不点蓝字,我们哪来故事? 本文约:2000字 预计阅读时间:5分钟 1 前言 现在已经到了国庆的末尾了,大家这个国庆过的怎么样?是否已经顺利地从家中返航? 当你看到这篇文章的时候,就知道moon要来提 ...

  5. mysql集群从节点无法启动_一次galera cluster集群故障节点无法启动问题排查

    现象 环境: Server version: 10.0.25-MariaDB-wsrep MariaDB Server, wsrep_25.13.raf7f02e 配置文件: [root@node-2 ...

  6. mysql cluster 宕机 恢复_mysql cluster 集群恢复不起来,还请大神赐教?报错-问答-阿里云开发者社区-阿里云...

    mysql cluster 集群原本使用的几乎全是内存表,后来随着数据的增长,把大的内存表迁移到磁盘表了,之后集群出现6050错误,整个集群挂掉:之后重新启动集群一直启动不起来... ----以下是集 ...

  7. Mysql Cluster集群实现高可用

    MySQL集群搭建实现高可用 本节所讲内容: l MySQL 集群 概述 l 实战:MySQL 集群 搭建 1  MySQL集群概述和安装环境 MySQL Cluster是MySQL适合于分布式计算环 ...

  8. MySQL cluster集群/NDB集群学习

    公司主业务用的MySQL集群是官方自带的MySQL Cluster,MySQL自带的集群模式,这个集群的模式和MGR.PXC.主从 有点不一样. 一.存储引擎不是innodb,MySQL Cluste ...

  9. mysql cluster rpm包的作用_MySQL之——MySQL Cluster集群搭建详解(基于RPM安装包)

    1.下载MySQL-cluster 7.3.7 http://dev.mysql.com/downloads/cluster/ 2.环境清理及安装 1)清理CentOS6.5自带的mysql服务,其中 ...

  10. mysql pxc galera_PXC / Galera Cluster集群概述及原理分析

    mariadb的galera cluster集群抄袭percona的PXC数据库集群,所以原理一样 ### Galera Cluster/ PXC 集群工作原理 client端向server端发送dm ...

最新文章

  1. html点击保持,如何保持:点击元素后的活动CSS样式
  2. 软件架构自学笔记----分享“去哪儿 Hadoop 集群 Federation 数据拷贝优化”
  3. python职能-最受欢迎的10家互联网公司揭秘Python薪资!
  4. Android 智能问答机器人的实现
  5. Java 实现三次 for 循环计算水仙花数
  6. windows系统自动化设置
  7. SpringBoot 自带工具类~StreamUtils
  8. android 邮件分享链接,Android应用从通过电子邮件发送的链接打开
  9. HTTP Get POST方式请求数据
  10. 服务器端登陆机制的 实现模块
  11. Snipaste截长图方法
  12. 管家婆服务器怎么找文件夹,请问管家婆数据备份在哪里?如何恢复?
  13. 《矛盾论》与《实践论》
  14. 马云也进军游戏了?还赚了上亿元,网友:马化腾先生怎么看呢?
  15. java获取国家法定节假日和周末
  16. 惠普电脑BIOS设置图文详细介绍
  17. 学习笔记_OSI模型
  18. 跨国企业在中国 | 通济隆在上海设新亚太总部;劳氏船级社战略合作中国石油安全环保研究院...
  19. linux标准发音视频,Linux的标准发音
  20. element 表格自定义斑马纹颜色

热门文章

  1. 使用rem进行页面适配
  2. Python——Window启动服务
  3. [转帖]select提高并发,select和poll、epoll的区别(杂)
  4. 二进制安装kubernetes v1.11.2 (第十章 kube-scheduler集群部署)
  5. Servlet过滤器Filter和监听器
  6. 用Navicat for MySQL往数据表中添加数据时汉字出现乱码
  7. VC++ : VS2008 使用ATL开发COM组件
  8. spring-boot spring-security-oauth2
  9. Codeforces Round #372 (Div. 1) B. Complete The Graph
  10. 当碰到非ARC写的文件时在ARC环境下运行报错时解决办法