mysql开源版可以搭建集群_CentOS搭建MySQL-Cluster集群

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

[ndbd default]

NoOfReplicas=2[ndb_mgmd]

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

[ndbd]

NodeId=11HostName=172.16.43.153DataDir=/usr/local/mysql/data

[ndbd]

NodeId=12HostName=172.16.43.154DataDir=/usr/local/mysql/data

[mysqld]

NodeId=21HostName=172.16.43.153[mysqld]

NodeId=22HostName=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/binchmod+x /usr/local/bin/ndb_mgm*

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

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

da4930560f53490dc5630ac62c40d259.png

4c0036c0098d0bd9cf6bc3247db771a4.png

因为我们的数据节点和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

ae94f34b907ae9125fb31fe184af576c.png

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

4)添加并启动Linux服务

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

chmod+x /etc/init.d/mysqld

chkconfig--add mysqld

service mysqld start

1bbb2198072f8695e430c83b97f9c7b3.png

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/mysqlmkdir/usr/local/mysql/data

4)启动数据节点

ndbd

dd6ccc311bdde758401e7bb5a63c234e.png

5、验证安装

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

7b717de0fc84457c44a6a5f708420cac.png

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节点都可以看到这张表和表中的数据了。

4c421c981d63fc651d78161a67e0b049.png

出现的问题:

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

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

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

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

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

bc846e65fb2b8718c36a590aa808d0f5.png

其他:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值