准备 32位和64位版本  3台服务器

202.38.128.153 dbs2 64位

202.122.32.68 dbs1 64位

192.168.32.22 erpdbtest 32位

管理节点(ndb_mgmd) 192.168.32.22 erpdbtest 32位

数据节点(ndbd)    202.122.32.68 dbs1 64位   202.38.128.153 dbs2 64位

SQL节点(mysqld) 202.122.32.68  dbs1 64位  202.38.128.153 dbs2 64位

wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.4-linux2.6-i686.tar.gz/from/http://gd.tuwien.ac.at/db/mysql/

卸载Mysql 

rpm –qa | grep SQL

rpm –e mysql...

删除/etc/my.cnf   /var/lib/mysql

关闭防火墙
Iptables是一个包含在绝大多数Linux发行版中的防火墙。在默认安装的RHEL中,防火墙是打开的,且随机启动,如果要关闭防火墙,可以使用以下命令:
service iptables stop
以上命令执行完毕之后效果只能保持到下次重启。重启后的配置就还原了,如果希望能够在重启之后还能够保持防火墙的关闭状态,可以使用以下命令:
chkconfig –level 35 iptables off
关闭SELinux
SELinux的全称是Security-EnhancedLinux,是由美国国家安全局NSA开发的访问控制体制。SELinux可以最大限度地保证Linux系统的安全。
在默认安装的Linux系统中,SELinux默认是开启的,配置文件是/etc/selinux/config,一般测试过程中使用“permissive”模式,这样仅会在违反SELinux规则时发出警告,然后修改规则,最后由用户觉得是否执行严格“enforcing”的策略,禁止违反规则策略的行为。规则决定SELinux的工作行为和方式,策略决定具体的安全细节如文件系统,文件一致性。在安装过程中,可以选择“激活”、“警告”或者“关闭”SELinux。默认设置为“激活”。
为了避免SELinux影响到群集功能,需要关闭SELinux系统的功能

1、    安装管理节点(192.168.32.22) 
解压文件

tar -zvxf mysql-cluster-gpl-7.2.4-linux2.6-i686.tar.gz

创建安装目录 
mkdir -p /usr/local/mysql/bin 
mkdir -p /usr/local/mysql/ndbdata 
添加执行文件路径 
vi ~/.bash_profile 
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin 
拷贝执行文件

cd mysql-cluster-gpl-7.2.4-linux2.6-i686
cp bin/ndb_mgmd /usr/local/mysql/bin
cp bin/ndb_mgm /usr/local/mysql/bin

创建日志文件存储目录 
mkdir /var/lib/mysql-cluster 
创建配置文件目录及文件 
mkdir /usr/local/mysql/cluster-conf 
vi /usr/local/mysql/cluster-conf/config.ini 
编辑配置文件: 
########################以下为配置文件内容#################

[ndbd default] NoOfReplicas=2 #复制成员个数DataMemory=80M  #数据存储可以分配的内存IndexMemory=18M #索引存储可以分配的内存 
[ndb_mgmd] #定义管理节点的IP地址或主机名id=1hostname=192.168.32.22 DataDir=/var/lib/mysql-cluster 
[ndbd]  #定义数据节点id=11 HostName=202.122.32.68 DataDir=/usr/local/mysql/ndbdata  [ndbd] id=12 HostName=202.38.128.153DataDir=/usr/local/mysql/ndbdata 
[mysqld]#定义SQL节点
id=21 HostName=202.122.32.68 [mysqld]id=22 HostName=202.38.128.153

[mysqld]id=23

########################以上为配置文件内容#################

2、    安装数据节点 ( 202.122.32.68 dbs1  202.38.128.153 dbs2 )

解压文件

tar -zxvf mysql-cluster-gpl-7.2.4-linux2.6-x86_64.tar.gz

创建安装目录

mkdir -p /usr/local/mysql/bin

mkdir -p /usr/local/mysql/ndbdata

拷贝执行文件

cp mysql-cluster-gpl-7.2.4-linux2.6-x86_64/bin/ndbd /usr/local/mysql/bin

添加执行文件路径

vi ~/.bash_profile

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin

创建配置文件:

vi /etc/my.cnf

分别在主机添加如下内容:

[mysql_cluster] #配置数据节点连接管理节点ndb-connectstring=192.168.32.22

3、安装SQL节点(202.122.32.68 dbs1  202.38.128.153 dbs2):

解压文件

tar -zxvf mysql-cluster-gpl-7.2.4-linux2.6-x86_64.tar.gz

拷贝安装文件

mv mysql-cluster-gpl-7.2.4-linux2.6-x86_64 /usr/local/mysql

添加mysql用户

groupadd mysql

useradd -g mysql mysql

添加权限

chown -R mysql:mysql /usr/local/mysql

拷贝配置文件

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

初始化数据库

cd /usr/local/mysql

scripts/mysql_install_db --user=mysql

拷贝守护进程所需文件

cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

配置守护进程

chkconfig –add mysqld

chkconfig –level 35 mysqld on

添加执行文件路径

vi ~/.bash_profile

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin

更改配置文件

vi /etc/my.cnf

分别编辑如下信息:

[mysqld]  #配置SQL节点与管理节点连接port            = 3306socket          = /tmp/mysql.sockndbclusterndb-connectstring=192.168.32.22

4、启动及关闭mysql cluster

启动顺序:管理服务器->存储节点->SQL节点

a、启动管理节点

rm mysql/mysql-cluster/ndb_1_config.bin.1 #不是必须的,如果config.ini有改动则要加上

ndb_mgmd -f /usr/local/mysql/cluster-conf/config.ini

b、启动存储节点

ndbd –initial #(第一次启动必须添加选项,另外备份/恢复,修改配置文件也需要执行)

ndbd    #不是第一次启动需要执行的命令

c、启动SQL节点

/etc/rc.d/init.d/mysqld start 或service mysqld start

启动后可以用mysql -uroot -p 验证mysql服务状态

关闭顺序:SQL节点->管理节点

a、关闭SQL节点

/etc/rc.d/init.d/mysqld stop 或service mysqld stop

b、关闭管理节点

ndb_mgm〉 shutdown

5、验证配置的正确性
要先启动管理节点 再启动数据节点 等启动完后 再起sql节点 否则会出错
1、在管理节点执行:ndb_mgm -> show

ndb_mgm> showCluster Configuration---------------------[ndbd(NDB)]     2 node(s)id=11   @202.122.32.68  (mysql-5.5.19 ndb-7.2.4, Nodegroup: 0, Master)   启动完id=12   @202.38.128.153  (mysql-5.5.19 ndb-7.2.4, starting, Nodegroup: 0)  正在起

[ndb_mgmd(MGM)] 1 node(s)id=1    @192.168.32.22  (mysql-5.5.19 ndb-7.2.4)

[mysqld(API)]   3 node(s)id=21   @202.122.32.68  (mysql-5.5.19 ndb-7.2.4)id=22   @202.38.128.153  (mysql-5.5.19 ndb-7.2.4)id=23 (not connected, accepting connect from any host)

正常状态

ndb_mgm> showCluster Configuration---------------------[ndbd(NDB)]     2 node(s)id=11   @202.122.32.68  (mysql-5.5.19 ndb-7.2.4, Nodegroup: 0, Master)id=12   @202.38.128.153  (mysql-5.5.19 ndb-7.2.4, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)id=1    @192.168.32.22  (mysql-5.5.19 ndb-7.2.4)

[mysqld(API)]   3 node(s)id=21   @202.122.32.68  (mysql-5.5.19 ndb-7.2.4)id=22   @202.38.128.153  (mysql-5.5.19 ndb-7.2.4)id=23 (not connected, accepting connect from any host)

2、在其中一个SQL节点创建数据库,添加数据。要等启动完再操作。

mysql -uroot -pcreate database ndbtest;use ndbtest;CREATE TABLE `t1` (  `id` int(11) NOT NULL AUTO_INCREMENT,  PRIMARY KEY (`id`)) ENGINE=ndbcluster  DEFAULT CHARSET=gbk;

NDB: Could not acquire global schema lock (266)Time-out in NDB,

启动完成前 如果在一个节点执行添加数据库的操作,不能同步到其他节点。

3、在另一个SQL节点,如果能够存在添加的数据库和数据,则说明配置成功

进入sql节点,在test数据库创建表

CREATE TABLE `t1` (  `id` int(11) NOT NULL AUTO_INCREMENT,  PRIMARY KEY (`id`)) ENGINE=ndbcluster  DEFAULT CHARSET=gbk

切换到2台数据节点服务器~/mysql/data/ndb_2_fs和~/mysql/data/ndb_3_fs看看,

或者直接去数据库查,数据已经同步了!

关闭集群服务

关闭sql节点等同于停止mysql服务,此时外界数据不将再进来。然后关闭管理节点

~/mysql/bin/ndb_mgm -e shutdownrm ~/mysql/mysql-cluster/ndb_1_config.bin.1 #不是必须的,如果config.ini有改动则要加上

这样操作后,管理节点和数据节点都将停止服务

Notes:

1:如果发现关闭一台机器的ndbd进程,另一台机器的ndbd的进程也关闭,则需要修改参数NoOfReplicas。2:./ndbd --initial 不能同时在所有数据节点机器上执行,如执行,会删除所有数据3:可以像操作非簇类型的数据库那样,操作mysqld节点4:每次修改config.ini文件,重启ndb_mgmd时,需要删除mysql-cluster文件下的ndb_1_config.bin.1文件,因为他默认调用此文件 5:NDB 簇不支持自动发现数据库的功能,这点很重要,一旦在一个数据节点上创建了世界(world)数据库和它的表,在簇中的每个SQL节点上还需要发出命令 CREATE DATABASE world,后跟FLUSH TABLES。这样,节点就能识别数据库并读取其表定义。(在本版本MySQL Cluster 7.1.5下数据库也会自动同步的)6:如果在相关节点服务器启动时,注意查看~/mysql/mysql-cluster目录内的相关日志文件以获取错误信息.7:在管理节点的配置文件里各[mysqld],[ndbd]和[ndb_mgmd]配置的选项值顺序应该如下:[mysqld]Id=4HostName=192.168.208.3Id在顶端紧跟其后的是HostName,如果顺序错了,当SQL或数据节点连接管理节点时,管理节点无法正确的定位到其对应的节点配置上.因为无法定位到对应的节点配置,当没有剩余的[空节点]时,客户端节点启动时(./mysqld or ./ndbd)还会报:Configuration error: Error : Could not alloc node id at 192.168.0.231 port 1186: No free node id found for mysqld (API).Failed to initialize consumers 8:[空节点]是没有指定HostName选项的节点配置均为空节点,空节点可以用来动态配置一些动态IP的节点,一般管理节点的 配置文件要预留3个以上的空节点,因为备份时需要连接一个节点,如下:[mysqld]Id=6
# ps -ef|grep mysqlroot     13882     1  0 15:25 pts/5    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/dbs1.pidmysql    14185 13882  0 15:25 pts/5    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/dbs1.err --pid-file=/usr/local/mysql/data/dbs1.pid --socket=/tmp/mysql.sock --port=3306


转载于:https://www.cnblogs.com/bigshuai/archive/2012/02/29/2373865.html

MySQL Cluster7.2.4 集群配置相关推荐

  1. RedHat AS4-U2下Mysql 5.0的集群配置

    最近看到过很多关于cluster的资料,一直在研究linux系统级的负载均衡和高可用,但是还没有完全成功,只是实现了一些简单的服务:今天在搜集资料中看到有关mysql的cluster,看上去不是很复杂 ...

  2. RedHat AS4-U2下Mysql 5.0.22集群配置

    一.实验环境 1. Linux操作系统版本. RedHat AS4-U2 2. Mysql数据库版本 mysql-max-5.0.22-linux-i686-glibc23.tar.gz 共三台机器P ...

  3. window7 MySql Cluster数据库集群配置

    MySql Cluster数据库集群配置 先来看一张mysql集群的架构图: 上图一共分了四层:Applications.SQL.Storage.Management. –Applications主要 ...

  4. mysql双节点安装_快速安装及配置MySQL Replication双主节点集群--及改变数据保存目录...

    192.168.1.101  master/slave 192.168.1.102  slave 192.168.1.103  slave 操作系统均为centos6.5 原理图: 1. 分别安装my ...

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

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

  6. Docker高级篇之Mysql主从复制、Redis集群扩容缩容配置案例详解

    Docker之Mysql主从复制.Redis集群扩容缩容配置案例 1. 安装mysql主从复制 1.1 新建主服务器容器实例3307 1.2 进入/mydata/mysql-master/conf目录 ...

  7. mysql数据库集群配置_使用MySQL-Cluster搭建MySQL数据库集群(示例代码)

    1.MySQL集群的作用: - 解决访问节点的单点故障 - 数据存储节点的单点故障 - 解决数据存储节点数据备份问题 2.集群: 使用一组服务器提供相同的服务 3.关于MySQL-Cluster: M ...

  8. Mysql集群配置(回顾)

    一.背景 近期,新接手一项目,项目业务系统已上线,但是mysql未完成集群配置,但规划中有相关计划,遂计划在本文中回顾相关Mysql集群配置,也为项目中接下来的集群功能构建思路: 二. 集群架构选用 ...

  9. ActiveMQ的几种集群配置

    ActiveMQ是一款功能强大的消息服务器,它支持许多种开发语言,例如Java, C, C++, C#等等.企业级消息服务器无论对服务器稳定性还是速度,要求都很高,而ActiveMQ的分布式集群则能很 ...

最新文章

  1. AS下配置OpenCV环境
  2. maven+nexus搭建maven仓库
  3. 常用器件选型——电源篇
  4. 手动加载spring, ApplicationContext怎么销毁
  5. qotd服务_QOTD:Java线程与Java堆空间
  6. git tag的使用
  7. Python字符串详解
  8. CXF处理Date类型的俩种方式
  9. thinkphp 每个页面自定义加载对应指定的js、css
  10. curl语句导入到Postman
  11. 系统集成项目管理工程师的含金量
  12. windows系统维护工具箱
  13. rabbit 的使用方法
  14. 摩拜免押金是在阿里的哈罗猛烈攻击下的应对举措
  15. 大学生社交网络问卷调查,社交情况问卷调查报告
  16. C# chart控件实时动态显示数据
  17. 计算机毕业设计Java企业人事管理系统(源码+系统+mysql数据库+lw文档)
  18. 部分HTTPS网站无法访问的可能原因
  19. Python的P图大法,你值得拥有!
  20. 计算机基础--进制之间的转换

热门文章

  1. Java 习题(面向对象)
  2. docker jenkins 公钥_代码自动发布docker(20.10.1)+k8s(1.20.1)
  3. layui数据表格循环数据给特殊行变颜色遇到的bug
  4. linq判断集合中相同元素个数_JavaSe集合的概念以及集合框架介绍
  5. java 多目录 编译jar_javac编译多个包下的、依赖其他jar包的java文件
  6. maya扇子动画_maya怎么制作一个万箭齐发的效果?
  7. jQuery 拖拽窗体
  8. C++ 泛型编程(一):模板基础:函数模板、类模板、模板推演成函数的机制、模板实例化、模板匹配规则
  9. leetcode71. 简化路径 Unix 风格
  10. leetcode162. 寻找峰值 变种二分见过吗