百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

Mysql-cluster搭建 mysql搭建集群

yuyutoo 2024-11-08 15:39 3 浏览 0 评论

  1. 前期准备

准备五台虚拟机:

ip地址分别为:

192.168.1.211 管理节点

192.168.1.64 SQL节点

192.168.1.65 SQL节点

192.168.1.70 数据节点

192.168.1.71 数据节点

  1. 修改每台主机的/etc/hosts 文件
  2. 关闭防火墙
  3. 安装jdk6.5

1)上传jdk安装包至 /soft下

2)通过jdk-6u45-linux-x64-rpm.bin命令使其获得可执行权限

# chmod +x jdk-6u45-linux-x64-rpm.bin

3)通过 jdk-6u45-linux-x64-rpm.bin来进行安装

# ./jdk-6u45-linux-x64-rpm.bin

4)设置环境变量,vi /etc/profile文件,添加如下红色字部分内容并保存

export JAVA_HOME=/usr/java/jdk1.6.0_45

export PATH=$JAVA_HOME/bin:$PATH

5)执行命令使修改生效

#source /etc/profile

6)验证JAVA环境是否生效,执行命令:java –version

  1. 创建用户

#groupadd -g 800 mysql

#useradd -u 800 -g 800 -m -d /home/mysql mysql

  1. 解压安装包

# tar -zxvf mysql-cluster-gpl-7.0.34-linux-x86_64-glibc23.tar.gz

  1. 将解压出来的文件拷贝到/user/local 下

#mv mysql-cluster-gpl-7.0.34-linux-x86_64 /usr/local/mysql

  1. 修改目录权限

#chown -R root .

#chown -R mysql data

#chgrp -R mysql .

  1. 安装初始的数据库表

#scripts/mysql_install_db --user=mysql

  1. 设置mysql服务开机自启动

#cp support-files/mysql.server /etc/init.d/mysqld

#chmod +x /etc/init.d/mysqld

#chkconfig --add mysqld

  1. 启动mysql服务

#service mysqld start

以上步骤需要在所有的机器上都执行

  1. 配置管理节点(192..168.1.211)

#cd /var/lib

#mkdir mysql_cluster

#cd /var/lib/mysql_cluster

#vim config.ini

1、配置文件config.ini 内容如下:

[ndbd default]

NoOfReplicas=2

DataMemory=80M

IndexMemory=18M

[ndb_mgmd]

NodeId=1

hostname=192.168.1.211

datadir=/var/lib/mysql_cluster

[ndbd]

NodeId=2

hostname=192.168.1.70

datadir=/var/lib/mysql-cluster

[ndbd]

NodeId=3

hostname=192.168.1.71

datadir=/var/lib/mysql-cluster

[mysqld]

NodeId=4

hostname=192.168.1.64

[mysqld]

NodeId=5

hostname=192.168.1.65

  1. 安装管理节点

安装管理节点只需要Mysql Cluster服务端程序(ndb_mgmd)和监听客户端程序(ndb_mgm)

#cp /usr/local/mysql/bin/ndb_mgm* /usr/local/bin

#cd /usr/local/bin

#chmod +x ndb_mgm*

  1. 配置数据节点(192.168.1.71 / 192.168.1.70)

1、配置my.cnf 的内容如下

[mysqld]

datadir=/var/lib/mysql-cluster

ndb-connectstring=192.168.1.211

[mysql_cluster]

Ndb-connectstring=192.168.1.211

  1. 配置SQL节点
  1. 配置my.cnf文件

[mysqld]

ndbcluster

ndb-connectstring=192.168.1.211

[client]

default-character-set=utf8

[mysql_cluster]

ndb-connectstring=192.168.1.211

  1. Cluster环境启动

注:先启动管理节点、然后启动数据节点、最后启动SQL节点

  1. 启动管理节点

#ndb_mgmd -f /var/lib/mysql-cluster/config.ini

可以使用ndb_mgm来监听客户端

#ndb_mgm

  1. 启动数据节点

首次启动,则需要添加--initial参数,以便进行NDB节点的初始化工作,在以后启动过程中,则是不能添加该参数的,否则ndbd程序会清除在之前建立的所有用于恢复的数据文件和日志文件。

#/usr/local/mysql/bin/ndbd --initial

如果不是首次启动则使用如下命令:

#/usr/local/mysql/bin/ndbd

  1. 启动SQL节点

#/usr/local/mysqk/bin/mysqld_safe --user=mysql &

  1. 集群测试

在其中一台SQL节点上进行相关数据库的创建,然后再到另一个SQL节点上查看数据是否同步

在(192.168.1.64)节点上执行

#/usr/local/mysql/bin/mysql -uroot -p

Mysql>show databases;

Mysql>create database aa;

Mysql>use aa;

Mysql>create table ctest2(i INT)ENGINE=NDB;//这里必须制定数据库表的引擎为NDB,否则同步失败

Mysql>insert into ctest2() values(1);

Mysql>select * from ctest2;

然后去SQL(192.168.1.65)节点上查看是否已经同步

Mysql> show create table 表名;

测试二

关闭一个数据节点,在另一个节点输入,开启关闭的节点看数据是否同步过来

首先把数据节点1 重启,然后在节点2上添加数据

在SQL节点2上做如下操作:

Mysql>create database bb;

Mysql>use bb;

Mysql>create table ctest3(i INT)ENGINE=NDB;

Mysql>use aa;

Mysql>insert into ctest2()values(333);

Mysql>select * from ctest2;

等数据节点1启动完毕,启动数据节点1 的服务

#/usr/local/mysql/bin/ndbd --initial

#service mysqld start

登录数据库查看数据

#/usr/local/mysql/bin/mysql -uroot -p

  1. 关闭集群

1、关闭管理节点和数据节点只需要在管理节点执行

#/usr/local/mysqlbin/ndb_mgm -e shutdown

  1. 关闭SQL节点

#/etc/init.d/mysqld stop

相关推荐

URL URI傻傻分不清楚,dart告诉你该怎么用

简介如果我们要访问一个网站,需要知道这个网站的地址,网站的地址一般被称为URL,他的全称是UniformResourceLocator。那么什么是URI呢?...

你最深爱的编程语言其实很烂

我最近写了几篇比较严肃的博客,是关于一些沮丧的事情,结果我开始有些忧郁。很严重。所以,我想应该说些比较轻松的事情。我要做的就是数落大家最喜欢的编程语言。你会问我为什么,为什么要搞这种恶作剧?亲爱的朋友...

路由器交换机基础配置6——命令行显示信息设置

一、控制命令行显示信息设备中的部分命令执行后会出现提示、警告、执行结果等显示信息,用户可以控制这些显示信息的显示方式,以方便阅读。1、提示和警告信息提供中、英文两种语言显示。可以通过language-...

python是一种什么类型的编程语言

Python(英国发音:/'paθn/美国发音:/'paθɑn/)是一种广泛使用的解释型、高级编程、通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以视之为一种改良(加入一些其他编程...

60年了,LISP语言的进化史是否会引发你对AI未来的新思考?

图:pixabay作为长期垄断AI领域的高级计算机语言程序,Lisp语言到底经过了怎样的变迁?也许,我们可能已经忘记了一些在今天仍然有用的东西,或者说,至少了解这些历史对一些新的想法产生有所影响。o2...

Java 和 JavaScript 的关系

Java和JavaScript不同之处:●出身不同:Javascript与Java是由不同的公司开发的不同产品。Javascript是Netscape公司的脚本语言,而Java...

Micro:命令行文本编辑器 (Go)

Micro是一款基于终端的文本编辑器,使用Go开发。Micro是个命令行编辑器,主要特性是易用,直观,并且包含所有现代化终端的优点。功能:易用常用快捷键绑定(ctrl-s,ctrl-c,...

7 行代码 3 分钟:从零开始实现一门编程语言

本文最初发布于MattMight的个人博客。...

码上去学海南公司:C语言到底能干什么?我列举了8种经典案例

虽然C语言执行速度极快,占用资源极少,但是它使用起来非常麻烦,完全没有Java、Python、Go、JavaScript、C#等方便和灵活,会严重拖慢项目的开发进度,所以,通常只有在“不得不”的情...

什么是 JavaScript?

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!作者|慕课网精英讲师然冬...

新人如何自学安卓手机软件开发?

当我们问一个人,你是做什么的,听到我是做软件开发的,不由自主就会感觉,这个人好厉害。越来越多的人投身于软件开发行业,可能有些人本身不是学这个专业的,出于对这个行业的热爱,自学软件开发。现在这个社会,多...

Android开发基础入门(一):UI与基础控件

Android基础入门前言:...

第02章 《小Z安卓程序员之路》Android Studio

不积跬步无以至千里,不积小流无以成江海!!每天进步一点点我是杨哲丶,一个梦想把科技和艺术结合在一起的程序猿!!小Z在开始查询的如何使用SVN和如何使用Git版本控制工具的时候,发现网上大部分居然是关于...

支付宝团队 | 移动客户端实战教程(iOS和Android)

今天给大家推荐一个非常好的PPT,是github在线的,是支付宝团队内部分享技术用的PPT,适合Web端和移动端的同学入门客户端开发,是我见过的最详细的《iOS&Android开发从入门到...

只需二步,就可以在win11操作系统上运行Android程序,非常简单

你想像过吗,只需几个简单的步骤即可在你的Windows电脑上运行Android应用程序。现在,在Windows11中运行安卓应用程序现在就像在手机上运行应用程序一样简单。微软和亚马逊联手打造了数千款...

取消回复欢迎 发表评论: