1、准备

  1)操作系统为CentOS,使用root用户安装

  2)下载mysql-cluster-gpl-7.6.13-el7-x86_64.tar.gz,下载地址https://dev.mysql.com/downloads/cluster/7.6.html

  3)准备3台Linux主机

IP地址 作用
172.16.43.142 管理节点
172.16.43.148 数据节点、SQL节点
172.16.43.149 数据节点、SQL节点

    保证所有主机防火墙对1181和3306端口例外,或直接禁用防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

2、安装管理节点(Management Node)

  管理节点最好与数据节点不在同一台机器,如果在同一台机器,当这台机器挂了,则整个服务不可用

  1)创建文件/var/lib/mysql-cluster/config.ini

mkdir /var/lib/mysql-cluster
vi /var/lib/mysql-cluster/config.ini

  文件内容为(配置说明见:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-configuration.htmlhttps://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-ndbd-definition.html):

[ndbd default]
NoOfReplicas=2

[ndb_mgmd]
NodeId=1
HostName=172.16.43.151
DataDir=/var/lib/mysql-cluster

[ndbd]
NodeId=11
HostName=172.16.43.153
DataDir=/usr/local/mysql/data
[ndbd]
NodeId=12
HostName=172.16.43.154
DataDir=/usr/local/mysql/data

[mysqld]
NodeId=21
HostName=172.16.43.153
[mysqld]
NodeId=22
HostName=172.16.43.154

  注意:NodeId只能是数字,可以在不同类型节点间空出几个数字,以备扩展。NoOfReplicas值范围是1-2。

  2)解压安装文件,拷贝需要的程序

  对于单纯管理节点,只需要ndb_mgm和ndb_mgmd,其他解压内容都可以删除。

tar zxvf mysql-cluster-gpl-7.6.13-el7-x86_64.tar
cd mysql-cluster-gpl-7.6.13-el7-x86_64/
cp bin/ndb_mgm* /usr/local/bin
chmod +x /usr/local/bin/ndb_mgm*

  3)启动管理节点,并查看集群信息

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --config-cache=FALSE
ndb_mgm

  ndb_mgmd启动参数介绍:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-programs-ndb-mgmd.html

  因为我们的数据节点和SQL节点都没安装,所有状态都是not connected。

3、安装SQL节点(SQL Node)

  1)创建mysql用户和组

groupadd mysql
useradd -g mysql mysql

  2)修改/etc/my.cnf文件

vi /etc/my.cnf

  修改后的内容为:

[mysqld]
ndbcluster
default-storage-engine=ndbcluster
character_set_server=utf8
lower_case_table_names=1
#basedir=/usr/local/mysql #datadir
=/usr/local/mysql/data [mysql_cluster] ndb-connectstring=172.16.43.151
配置说明:
default-storage-engine=ndbcluster设置默认Engine。
lower_case_table_names=1,设置大小写不敏感。
character_set_server=utf8设置字符集,mysql默认字符集不支持汉字
此处datadir与config.ini中的DataDir是不同的设置,一个针对SQL节点,一个针对数据节点,它们的值可以相同,也可以不同,如果相同,且SQL节点与数据节点在同一台主机,则需保证SQL节点要先初始化,不然会报错
如果安装位置不是/usr/local/mysql,则需要basedir参数,不然mysql初始化时有些配置找不到。

  3)创建数据存储目录并更改属性

mkdir /usr/local/mysql/data

cd /usr/local/mysql/
chown -R mysql data
chgrp -R mysql .

  3)解压安装文件并初始化

tar -xzvf mysql-cluster-gpl-7.6.13-el7-x86_64.tar.gz
mv mysql-cluster-gpl-7.6.13-el7-x86_64/ /usr/local/mysql
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql

  记住上图中初始化生成的随机密码,丢了我是不晓得在哪可以再找到这个临时密码

  4)添加并启动Linux服务

cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start

4、安装数据节点

  1)复制ndbd和ndbmtd文件并授权

  对于单纯数据节点,只需要ndbd和ndbmtd文件,其他解压文件均可删除

cd /usr/local/mysql
cp bin/ndbd /usr/local/bin/ndbd
cp bin/ndbmtd /usr/local/bin/ndbmtd

chmod +x /usr/local/bin/ndb*

  2)修改my.cnf文件(如果数据节点与SQL节点在同一台服务器,且datadir一样,这一步可省略

[mysqld]
ndbcluster

[mysql_cluster]
ndb-connectstring=172.16.43.142

  3)创建管理节点config.ini中ndbd定义的DataDir目录(如果数据节点与SQL节点在同一台服务器,且datadir一样,这一步可省略)

mkdir /usr/local/mysql
mkdir /usr/local/mysql/data

  4)启动数据节点

ndbd

5、验证安装

  1)打开管理节点,重新查看各个节点状态,若出现下图则表示全部安装完成

  2)登陆mysql,创建'root'@'%'用户,每个SQL节点都要创建

# 使用'root'%'localhost'用户登陆
cd /usr/local/mysql/bin
./mysql -u root -p
set password = password('abc123');

# 创建'root'@'%'
create user 'root'@'%' identified by 'abc123';
grant all on *.* to 'root'@'%' with grant option;

  3)使用数据库连接工具创建数据库表,注意表的Engine为ndbcluster(也可以在my.cnf中设置默认引擎),这样2个SQL节点都可以看到这张表和表中的数据了。

 

 

出现的问题:

1、启动ndb_mgmd时报,Could not create directory '/usr/local/mysql/mysql-cluster'. Either create it manually or specify a different directory with --configdir=<path>

  解决方式一:增加--config-cache=FALSE

  解决方式二:配置--configdir参数为已存在的目录

  解决方式三:创建默认的/usr/local/mysql/mysql-cluster目录

2、mysqld(API) not connected(如下图),检测防火墙是否打开了。

其他:

  官网安装介绍:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-linux-binary.html

 

posted on 2020-03-22 04:45  玄同太子  阅读(3800)  评论(0编辑  收藏  举报