MySQL Cluster7.2.4 集群配置

准备 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=1
hostname=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.153
DataDir=/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 = 3306
socket = /tmp/mysql.sock
ndbcluster
ndb-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> show
Cluster 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> show
Cluster 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 -p
create 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 shutdown
rm ~/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=4
HostName=192.168.208.3
Id在顶端紧跟其后的是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 mysql
root 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.pid
mysql 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

非阻塞I/O多路复用机制

题外话:我们现在要仔细的说一说I/O多路复用机制,因为这个说法实在是太通俗了,通俗到一般人都不懂是什么意思。博主打一个比方:小曲在S城开了一家快递店,负责同城快送服务。小曲因为资金限制,雇佣了一批快递…

JAVA中toString方法的作用(转)

因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”。 它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方…

动态改变控件的方法

1.声明控件参数获取的对象 LinearLayout.LayoutParams linear (LayoutParams) view.getLayoutParams(); 2.设置控件参数,如宽度: linear.width 10; 3.使得设置生效 view.setLayoutParams(linear); 注意:view表示的是对应的控件对…

华为C语言笔试题集合

①华为笔试题搜集 1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量…

orcale中case when和group by同时使用会报无效标识符

不可以使用case when 的列名进行group by,如: select count(1)/7 as "平均违法数量", to_char(wfsj, yyyy-MM-dd ) as time, case when (to_char(wfsj, hh24)) between 00 and 04 then 00-04时 when (to_char(wfsj, hh24)) between 04 and 08 …

Windows平台WebRTC编译-VS2017

转载网站:https://blog.jianchihu.net/webrtc-build-vs2017.html 在音视频领域,想深入研究的话,必定会接触WebRTC。WebRTC是一个庞大的工程,就像是音视频领域的百科全书,音视频采集,编解码,传输…

Hadoop--初识Hadoop

什么是Hadoop? 搞什么东西之前,第一步是要知道What(是什么),然后是Why(为什么),最后才是How(怎么做)。但很多开发的朋友在做了多年项目以后,都习惯…

Android之TextView属性详解

android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)android:autoText如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。androi…

Python 列表解析

列表解析 列表解析总共有两种形式: 1. [i for i in range(k) if condition]:此时if起条件判断作用,满足条件的,将被返回成为最终生成的列表的一员。 2. [i if condition else exp for exp]:此时if...else被用来赋值&am…

VS2019编译 当前最新版chromium

VS2019编译 当前最新版chromium 之前编译过webrtc和chromium, 由于长时间没用,被我删除了, 最近在最新版本的google浏览器上遇到了播放器兼容性问题,老版本的google浏览器是没问题,IE, 火狐浏览器也没问题&#xff0…

37signals为何砍掉中层?个人点评,高素质人才队伍工作,靠的是全体发挥综合能力,而不是靠......

为什么80%的码农都做不了架构师?>>> 37signals为何砍掉中层? 分享到 本文来源于:中欧商业评论 作者:潘芸 发表于:2013-08-21 11:09:41 http://www.cyzone.cn/a/20130821/244571.html 37signals有多位程序员&#…

k-means k均值聚类的弱点/缺点

Similar to other algorithm, K-mean clustering has many weaknesses: 1 When the numbers of data are not so many, initial grouping will determine the cluster significantly. 当数据数量不是足够大时,初始化分组很大程度上决定了聚类,影响聚类…

Codeforces 360E 贪心 最短路

题意及思路&#xff1a;https://blog.csdn.net/huanghongxun/article/details/49846927 在假设所有边都是最大值的情况下&#xff0c;如果第一个人能比第二个人先到&#xff0c;那就缩短这条边。 代码&#xff1a; #include <bits/stdc.h> #define LL long long using na…

jni编译h文件

1.生成 class文件 到原文件目录&#xff08;*为java文件名称&#xff09; javac *.java 2.生成jni.h 到java目录&#xff08;*为java文件里面的类名称&#xff09; javah -jni com.example.widget.* 3.jse13 版本生成jni.h 到原文件目录&#xff08;*为java文件名称&#xff…

事件相关js函数

<script type"text/javascript">//功能:停止事件冒泡 function stopBubble(e) {//如果提供了事件对象&#xff0c;则这是一个非IE浏览器 if (e && e.stopPropagation)//因此它支持W3C的stopPropagation()方法 e.stop…

java嵌套循环

嵌套循环&#xff1a;循环里套循环 假设外循环的循环次数是m次,内循环的循环次数是n次&#xff0c;那么内层循环的循环次数需要 m * n次。 Eg&#xff1a;利用for循环语句的嵌套打印出乘法口诀表 class break1 { public static void main(String[] args) { for(int i1;i<10;…

计算收益复利的小例子

一个计算收益复利的小例子&#xff0c; 用c语言简单编程&#xff0c; 如 test 30 20 40&#xff1b; 30以万为单位&#xff0c;20是年收益百分比&#xff0c;40是年数。 #include <stdio.h> #include <stdlib.h>#define YEAR_GET_TYPE 0 // 年测试类型…

uva 10026 Shoemaker's Problem(排序)

题目连接&#xff1b;10026 Shoemakers Problem 题目大意&#xff1a;有一个鞋匠接了n双要修的鞋子&#xff0c; 修每双鞋需要d天&#xff0c;每推迟一天修将亏损val元&#xff0c;问按什么样的顺序修鞋可以保证损失最少&#xff0c;如果有多种情况输出字典序最小的。 解题思路…

ExtAspNet学习-利用AppBox框架快速创建项目(五)—完成项目含源代码

我们前边四个部分已经完成了框架需要的基础配置&#xff0c; 现在我们来完成项目 1、Subsonic 配置&#xff0c;首先在OraSurvey.DAO中添加App.config配置相关信息 View Code 1 <?xml version"1.0" encoding"utf-8" ?> 2 <configuration> 3…

坦克大战系列6-API常用函数说明2

前言 本篇主要介绍RobocodeAPI中的各种事件函数的说明&#xff0c;便于使用函数时有更清晰的思路。 子弹事件函数 onBulletHit() 当击中对方时 public void onBulletHit(BulletHitEvent event) 当你的子弹击中对方时就会调用这个方法。如果你想在子弹击中对方时作处理的话&…