mysql cluster安装配置_mysql-cluster 环境安装&配置

一、mysql-cluster 的介绍:

1、说心里话mysql-cluster这货性能上是不行的,之前一个同事测试了来的结果是8个主机组成的mysql-cluster性能

上搞不过一个单机的mysql(innodb引擎);这样的性能表现就尴尬了。

2、在功能上这货也不是一完整的,它有各种各样的不支持。

3、从官方表现上看不管是mysql-5.6 还是mysql-5.7 都有与之对应的mysql-cluster版本,但是在mysql-8这一代

变天了不再提供与之对应的mysql-cluster版本了,这个说明什么?说明mysql-cluster这货要GG啦。

4、好吧! mysql-cluster 是什么,是一个不成熟的解决方案! 它的设计思路是把单机mysql中的SQL层 和 引擎层

分离出来,使它们可以单独运行。想想如果多个用于保存数据的引擎能同时在多台主机上运行,这样数据就有冗余

了,同理SQL层的处理也是一样的,mysql-cluster就是通过冗余来提高整个环境的可用性的。还有为了方便管理

mysql-cluster的这若干的主机,mysql还专门开发了一个管理端程序。

5、现在专业一点 mysql-cluster中把主机按它运行的程序不同,逻辑上分成了三类:

1、sql node :运行mysqld 的主机,逻辑上负责保存元数据,处理连接请求。

2、data node :真正保存数据的主机

3、manger node : 用于管理以上两类(sql node ,data node)结点的结点。

6、再送你一张官方的mysql-clustr架构图

fdeddb631dc6e0616ab209608f70d81c.png

二、安装环境的规划:

主机IP地址 角色10.186.19.19manager node10.186.19.18data node10.186.19.17data node10.186.19.16 sql node

三、下载安装介质:

为了说明mysql-cluster整体架构、也就是说哪个角色要安装什么就可以了、所以在这里选择把安装包下载到10.186.19.16这台主机上

对于其它角色就采用scp的方式把相关的程序复制过去,这样做的好处是对于各个角色要安装什么包就变得非常明显了。

[root@actionsky17 ~]# cd /tmp/[root@actionsky17 tmp]#wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.5/mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64.tar.gz

四、安装sql node :

# 解压安装包并创建相关目录

cd/tmp/

tar -xvf mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64.tar.gz -C /usr/local/cd/usr/local/

ln -s mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64 mysqlmkdir -p /usr/local/mysql/data

#增加mysql用户

useradd mysql

#初始化sql node

./bin/mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql/data/#初始化完成后数据目录有如下内容

[root@actionsky16 mysql]# ll/usr/local/mysql/data/total110636

-rw-r-----. 1 mysql mysql 56 Oct 11 02:52auto.cnf-rw-r-----. 1 mysql mysql 422 Oct 11 02:52ib_buffer_pool-rw-r-----. 1 mysql mysql 12582912 Oct 11 02:52ibdata1-rw-r-----. 1 mysql mysql 50331648 Oct 11 02:52ib_logfile0-rw-r-----. 1 mysql mysql 50331648 Oct 11 02:51ib_logfile1

drwxr-x---. 2 mysql mysql 4096 Oct 11 02:52mysql

drwxr-x---. 2 mysql mysql 4096 Oct 11 02:52ndbinfo

drwxr-x---. 2 mysql mysql 8192 Oct 11 02:52performance_schema

drwxr-x---. 2 mysql mysql 8192 Oct 11 02:52 sys

五、安装data node:

由于data node 只包涵引擎层相关的程序,所以安装也就是把引擎层相关的程序由10.186.19.16 scp 到对应的主机,并以这些程序有

可执行权限就行了

在10.186.19.16(sql node)上执行

[root@actionsky16 mysql]# scp /usr/local/mysql/bin/ndbd 10.186.19.17:/usr/local/bin/[root@actionsky16 mysql]#scp /usr/local/mysql/bin/ndbmtd 10.186.19.17:/usr/local/bin/[root@actionsky16 mysql]#scp /usr/local/mysql/bin/ndbd 10.186.19.18:/usr/local/bin/[root@actionsky16 mysql]#scp /usr/local/mysql/bin/ndbmtd 10.186.19.18:/usr/local/bin/

六、安装manger node:

[root@actionsky16 mysql]# scp /usr/local/mysql/bin/ndb_mgm* 10.186.19.19:/usr/local/bin/ndb_mgm100% 7926KB 7.7MB/s 00:01ndb_mgmd100% 17MB 17.2MB/s 00:00

七:配置sql node 与 data node:

首先不管是sql node 还是 data node 他们和普通的单机一样都是读的/etc/my.cnf 这个配置文件中的配置项。

然而与普通单机不同的是它们的配置文件中额外说明两个问题

1、说明结点以mysql-cluster的方式工作 ndbcluster

2、说明结点对应的manger是谁 ndb-connectstring=manger主机的地址

以下是sql node 和 data node的配置文件样例:

[mysqld]

basedir=/usr/local/mysql/#mysql的安装路径

datadir=/usr/local/mysql/data #sql node 的相关数据保存的位置

ndbcluster #以mysql-cluster的方式运行

ndb-connectstring=10.186.19.19 #mysql-cluster manager的运行

八:配置manger node:

官方文档中把manger node 的配置文件保存在/var/lib/mysql-cluster/ 这个目录下了,配置文件名叫config.ini

我个人喜欢根据官方文档中的位置保存文件,这样我配置出来的环境就统一了,方便以后的运维。

1、创建保存配置文件的目录&创建配置文件:

mkdir -p /var/lib/mysql-cluster

cd/var/lib/mysql-cluster/

touch config.ini

2、配置文件中的内容如下:

[ndbd default]NoOfReplicas=2DataMemory=80M

IndexMemory=18M

ServerPort=2202

[ndb_mgmd]HostName=10.186.19.19DataDir=/var/lib/mysql-cluster[ndbd]HostName=10.186.19.18NodeId=2DataDir=/usr/local/mysql/data[ndbd]HostName=10.186.19.17NodeId=3DataDir=/usr/local/mysql/data[mysqld]HostName=10.186.19.16

九:启动mysql-cluster:

mysql-cluster的启动过程是有一个固定的步骤的

第一步:启动manger node

[root@10-186-19-19 mysql-cluster]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/

第二步:启动data node

分别在两个data node 结点上执行

[root@actionsky18 local]# ndbd --initial --ndb-connectstring=10.186.19.19

2017-10-11 04:12:56 [ndbd] INFO -- Angel connected to '10.186.19.19:1186'

2017-10-11 04:12:56 [ndbd] INFO -- Angel allocated nodeid: 2

第三步:启动sql node

cd /usr/local/mysql/./bin/mysqld_safe &

十:检查mysql-cluster的运行情况:

在manger node上执行

[root@10-186-19-19 mysql-cluster]# ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm>show

Connected to Management Server at: localhost:1186Cluster Configuration---------------------[ndbd(NDB)]2node(s)id=2 @10.186.19.18 (mysql-5.7.19 ndb-7.5.7, Nodegroup: 0, *)id=3 @10.186.19.17 (mysql-5.7.19 ndb-7.5.7, Nodegroup: 0)

[ndb_mgmd(MGM)]1node(s)id=1 @10.186.19.19 (mysql-5.7.19 ndb-7.5.7)

[mysqld(API)]1node(s)id=4 @10.186.19.16 (mysql-5.7.19 ndb-7.5.7)

十一、mysql-cluster安装&配置的一些注意项:

1、--initial 会去删除ndb文件系统中的数据,并重新初始化一下,这样之前的数据就全没了。如果你不小心执行了这个

那你可以准备好跑路了!

2、目前的环境下有在/etc/my.cnf 中指定ndb-connectstring的值,但是ndbd每次都没有去读,如果我强制--defautls-file

的方式要它去读/etc/my.cnf ndbd 还会起不来。这下就尴尬了。

十二、验证一下环境的可用性:

由于在初始化sql node 的时间root并没有测试密码,测试环境下我又是以root身份登录的linux,所以在环境变量正确

的情况下一句mysql命令就能直接进了

mysql> create table t(id int ,x int) engine=ndbcluster;

Query OK,0 rows affected (0.15sec)

mysql> insert into t(id,x) values(110,119);

Query OK,1 row affected (0.01sec)

mysql> select * fromt;+------+------+

| id | x |

+------+------+

| 110 | 119 |

+------+------+

1 row in set (0.00sec)

mysql> show create tablet;+-------+-----------------------------------------------------------------------------------------------------------------------+

| Table | Create Table |

+-------+-----------------------------------------------------------------------------------------------------------------------+

| t | CREATE TABLE`t` (

`id`int(11) DEFAULT NULL,

`x`int(11) DEFAULT NULL) ENGINE=ndbcluster DEFAULT CHARSET=latin1 |

+-------+-----------------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

----

d1308a2699c8b0d08653d0bea7fbe6a0.png

f5680c55ce9f2a29e2ef46ddb3338d97.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值