您当前的位置:首页 > 电脑百科 > 数据库 > MYSQL

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

时间:2019-12-13 10:04:59  来源:  作者:

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

 

CenterOS 7.5下MySQL Cluster 7.6.12高可用集群搭建

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

节点规划

管理节点(1个): 10.106.224.181

Sql节点(2个): 10.106.224.182:3306 10.106.224.183:3306

数据节点(2个):10.106.224.182 10.106.224.183

安装mysql cluster 软件预先准备事项

Mysql cluster安装之前需要将mysql server 卸载掉,如果mysql已经卸载,则直接安装mysqlcluster

 

1. 删除原先的mysql 或者 mariadb(三台都卸载)

[root@hadoop01 ~]# rpm -qa|grep mariadb

mariadb-libs-5.5.56-2.el7.x86_64

[root@hadoop01 ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

[root@hadoop01 ~]# rpm -qa|grep mariadb

 

2. 下载mysql cluster ,这里我们采用7.6 版本

 

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 


CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

 

3. 假设每个节点都采用mysql用户来运行程序,先在各个节点上创建该用户

Groupadd mysql

Useradd mysql –g mysql

安装 数据和mysql节点上的mysql数据库

 

4. Sql和数据节点10.106.224.182 10.106.224.183 下对mysql-cluster-gpl-7.6.12-el7-x86_64.tar.gz 进行解压 并安装mysql

解压

tar -zxvf mysql-cluster-gpl-7.6.12-el7-x86_64.tar.gz

将解压的文件拷贝到/usr/local/下 并重命名为mysql-cluster7.6

mv mysql-cluster-gpl-7.6.12-el7-x86_64 /usr/local/mysql-cluster7.6

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

在mysql-cluster7.6目录下创建data文件夹

mkdir data

创建my.cnf 文件并放到/etc 下 内容如下(注意server_id 要进行区分)

[client]

socket=/usr/local/mysql-cluster7.6/mysql.sock

port=3306

 

[mysqld]

basedir=/usr/local/mysql-cluster7.6

datadir=/usr/local/mysql-cluster7.6/data

socket=/usr/local/mysql-cluster7.6/mysql.sock

port=3306

symbolic-links=0

log-error=/usr/local/mysql-cluster7.6/mysqld.log

pid-file=/usr/local/mysql-cluster7.6/mysqld.pid

log_bin=mysql-bin

server_id=1

default-storage-engine=innodb

character_set_server=utf8

skip-grant-tables

将mysql-cluster7.6授权给mysql

chown -R mysql:mysql mysql-cluster7.6

初始化数据库

cd /usr/local/mysql-cluster7.6/bin

./mysqld --initialize --user=mysql --basedir=/usr/local/mysql-cluster7.6 --datadir=/usr/local/mysql-cluster7.6/data

启动mysql

./mysqld_safe --user=mysql&

检查是否启动

ps -ef|grep mysql

 

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

 

将mysql路径添加到/etc/profile便于指令操作

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

source /etc/profile

设置登录密码

添加 skip-grant-tables 到/etc/my.cnf 中并重启mysql

Kill 19417 (上图的mysql 进程是19417)

./mysqld_safe --user=mysql&

mysql –u root

update mysql.user set authentication_string=password('123456') where user='root';

flush privileges;

exit

mysql -u root –p

输入刚设置的密码123456

alter user user() identified by '123456';

创建一个授权用户

grant all privileges on *.* to 'goodhope'@'%' identified by '123456' with grant option;

flush privileges;

exit

添加到服务中去

cp /usr/local/mysql-cluster7.6/support-files/mysql.server /etc/rc.d/init.d/mysqld

chmod a+x /etc/rc.d/init.d/mysqld

chkconfig --add mysqld

systemctl enable mysqld

systemctl status mysqld

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

 

管理节点上安装cluster 并初始化

5. 管理节点10.106.224.181 下对mysql-cluster-gpl-7.6.12-el7-x86_64.tar.gz 进行解压

 

tar -zxvf mysql-cluster-gpl-7.6.12-el7-x86_64.tar.gz

 

6. 10.106.224.181开始安装mysql cluster

mkdir /usr/local/mysql-cluster7.6

mv mysql-cluster-gpl-7.6.12-el7-x86_64/* /usr/local/mysql-cluster7.6/

chown -R mysql:mysql /usr/local/mysql-cluster7.6

 

7. 创建config.ini 和 管理节点配置目录 文件目录(后面初始化管理节点会用到)

 

创建目录为管理节点初始化使用(放置集群二进制配置文件)

mkdir /usr/local/mysql-cluster7.6/cluster-configdir

chown mysql:mysql /usr/local/mysql-cluster7.6/cluster-configdir

创建文件目录

mkdir /usr/local/mysql-cluster7.6/data

chown mysql:mysql /usr/local/mysql-cluster7.6/data

创建配置文件

cd /usr/local/mysql-cluster7.6/

vi config.ini

内容如下:

 

[ndbd default]

NoOfReplicas=2 #数据写入数量。2表示两份

DataMemory=512M #配置数据存储可使用的内存

IndexMemory=180M #索引给180M

 

[ndb_mgmd]

nodeid=1

HostName=10.106.224.181 #管理节点的IP地址

DataDir=/usr/local/mysql-cluster7.6/data #管理节点的日志

 

[ndbd]

nodeid=2

HostName=10.106.224.182

DataDir=/usr/local/mysql-cluster7.6/data #mysql数据存储路径

 

[ndbd]

nodeid=3

HostName=10.106.224.183

DataDir=/usr/local/mysql-cluster7.6/data

 

[mysqld]

nodeid=4

HostName=10.106.224.182

[mysqld]

nodeid=5

HostName=10.106.224.183

 

8. 初始化管理节点

/usr/local/mysql-cluster7.6/bin/ndb_mgmd --initial --ndb-nodeid=1 -f /usr/local/mysql-cluster7.6/config.ini --configdir=/usr/local/mysql-cluster7.6/cluster-configdir

(#--initial:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时)

 

返回结果如下:

MySQL Cluster Management Server mysql-5.7.28 ndb-7.6.12

2019-12-11 16:42:36 [MgmtSrvr] WARNING -- at line 4: [DB] IndexMemory is deprecated, use Number bytes on each ndbd(DB) node allocated for storing indexes instead

该集群版本使用mysql是5.7.28 ,另外我们从返回警告信息看到IndexMemory 后续会针对各个db进行配置,而不是统一配置了,这个比较灵活了

 

查看二进制配置路径

 

cd cluster-configdir/

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

 

9. 检查是否正常启动 ndb_mgmd

ps -ef |grep ndb_mgmd

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

 

10. 编写启动sh脚本如下

vi mysql-cluster-start.sh

ndb_mgmd --ndb-nodeid=1 -f /usr/local/mysql-cluster7.6/config.ini --configdir=/usr/local/mysql-cluster7.6/cluster-configdir

 

授权执行权限

chmod 700 mysql-cluster-start.sh

11. 进入bin目录查看集群状态

./ndb_mgm

Show

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

配置 数据和mysql节点

12. 修改10.106.224.182 和10.106.224.183 上my.conf 文件

[mysqld]

ndbcluster #使用ndb集群引擎

ndb-connectstring=10.106.224.181 #指定管理集群的ip地址,多个以,分隔

default-storage-engine=ndbcluster #设置默认引擎

 

[mysql_cluster]

ndb-connectstring=10.106.224.181

 

13. 启动ndbd

/usr/local/mysql-cluster7.6/bin/ndbd --initial

注意第一初始化才需要 –initial, 后面启动去掉 –initial 就可以

 

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

ps -ef |grep ndbd

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

14. 登录10.106.224.181 查看集群状态

/usr/local/mysql-cluster7.6/bin/ndb_mgm

show

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

关闭和开启集群

15. 关闭集群

先关闭管理节点(10.106.224.181)

ndb_mgm -e shutdown

执行完成之后管理节点会关闭,数据节点也会关闭,但SQL节点不会,也就是数据库服务需要手动到每一台服务器上停止以保证数据同步)

到182 和183 上关闭mysql

16. 开启集群

顺序为 管理节点→数据节点→SQL节点。

10.106.224.181启动管理节点(使用我们创建的sh脚本)

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

182%20和183%20上启动数据节点

/usr/local/mysql-clester7.6/bin/ndbd

systemctl%20start%20mysqld

systemctl%20status%20mysqld

 

 

17. 登录管理器 查看集群状态

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

 

测试机器同步

18. 测试数据同步

182 上操作

create database test_cluster;

use test_cluster;

 

CREATE TABLE `test_cluster`.`new_table` (

`id` INT NOT NULL AUTO_INCREMENT,

`namne` VARCHAR(50) NULL,

PRIMARY KEY (`id`));

 

insert into new_table(namne) values('this is a test for cluster');

183 上进行查询

select *from test_cluster.new_table

CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建

 

到此mysql 集群安装完成



Tags:Cluster   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言之前给小伙伴们科普ClickHouse集群的时候,我曾经提到ClickHouse集群几乎是去中心化的(decentralized),亦即集群中各个CK实例是对等的,没有主从之分。集群上的复制表、分布式...【详细内容】
2020-12-22  Tags: Cluster  点击:(104)  评论:(0)  加入收藏
简介Redis Cluster是Redis官方的一个高可用分布式解决方案,其优点是高可用,缺点是不能保证数据强一致。在这里使用docker容器来搭建一套6节点(3主,3从)Redis-Cluster集群环境。环...【详细内容】
2020-10-22  Tags: Cluster  点击:(124)  评论:(0)  加入收藏
一、Redis Cluster(Redis集群)简介 redis是一个开源的key value存储系统,受到了广大互联网公司的青睐。 redis集群采用P2P模式,是完全去中心化的,不存在中心节点或者代理节点; red...【详细内容】
2020-08-26  Tags: Cluster  点击:(77)  评论:(0)  加入收藏
当我们使用 Kubernetes 部署应用后,会发现如果用户增长速度超过预期,以至于计算资源不够时,你会怎么做呢?Kubernetes 给出的解决方案就是:自动伸缩(auto-scaling),通过自动伸缩组件...【详细内容】
2020-06-21  Tags: Cluster  点击:(81)  评论:(0)  加入收藏
临时接到一个测试任务,而测试需要用到redis-cluster环境,却没有现成的环境可用,于是只能自力更生搭建测试环境。一开始想采用在宿主机上硬搭,但苦于没有那么多的服务器,于是决定...【详细内容】
2020-02-21  Tags: Cluster  点击:(73)  评论:(0)  加入收藏
CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建 节点规划管理节点(1个): 10.106.224.181Sql节点(2个): 10.106.224.182:3306 10.106.224.183:3306数据节点(2个):10.106.224.18...【详细内容】
2019-12-13  Tags: Cluster  点击:(154)  评论:(0)  加入收藏
▌简易百科推荐
作者:雷文霆 爱可生华东交付服务部 DBA 成员,主要负责Mysql故障处理及相关技术支持。爱好看书,电影。座右铭,每一个不曾起舞的日子,都是对生命的辜负。 本文来源:原创投稿 *爱可生...【详细内容】
2021-12-24  爱可生    Tags:MySQL   点击:(7)  评论:(0)  加入收藏
生成间隙(gap)锁、临键(next-key)锁的前提条件 是在 RR 隔离级别下。有关Mysql记录锁、间隙(gap)锁、临键锁(next-key)锁的一些理论知识之前有写过,详细内容可以看这篇文章...【详细内容】
2021-12-14  python数据分析    Tags:MySQL记录锁   点击:(18)  评论:(0)  加入收藏
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二...【详细内容】
2021-12-14  linux上的码农    Tags:mysql   点击:(13)  评论:(0)  加入收藏
为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查...【详细内容】
2021-12-09  元宇宙iwemeta    Tags:mysql   点击:(15)  评论:(0)  加入收藏
测试的目的和原因,公司有很多程序员,每个程序员对数据库和表结构都有自己的理解。而且每个程序员的理解往往是以效率考虑。既然都是为了效率考虑,那么我就来测试一下究竟哪种使...【详细内容】
2021-12-08  吴彬的分享    Tags:Mysql数据库   点击:(14)  评论:(0)  加入收藏
当你们考虑项目并发的时候,我在部署环境,当你们在纠结使用ArrayList还是LinkedArrayList的时候,我还是在部署环境。所以啊,技术不止境,我在部环境。今天这篇文章缕一下在同一台服...【详细内容】
2021-12-08  秃头码哥    Tags:MySQL数据库   点击:(17)  评论:(0)  加入收藏
对于数据分析来说,MySQL使用最多的是查询,比如对数据进行排序、分组、去重、汇总及字符串匹配等,如果查询的数据涉及多个表,还需要要对表进行连接,本文就来说说MySQL中常用的查询...【详细内容】
2021-12-06  笨鸟学数据分析    Tags:MySQL   点击:(21)  评论:(0)  加入收藏
在学习SQL语句之前,首先需要区分几个概念,我们常说的数据库是指数据库软件,例如MySQL、Oracle、SQL Server等,而本文提到的数据库是指数据库软件中的一个个用于存储数据的容器。...【详细内容】
2021-11-24  笨鸟学数据分析    Tags:SQL语句   点击:(23)  评论:(0)  加入收藏
概述以前参加过一个库存系统,由于其业务复杂性,搞了很多个应用来支撑。这样的话一份库存数据就有可能同时有多个应用来修改库存数据。比如说,有定时任务域xx.cron,和SystemA域...【详细内容】
2021-11-05  Java云海    Tags:分布式锁   点击:(32)  评论:(0)  加入收藏
MySQL的进阶查询 一、 按关键字排序 使用ORDERBY语句来实现排序排序可针对一个或多个字段ASC:升序,默认排序方式 【升序是从小到大】DESC:降序 【降序是从大到小】ORDER BY的...【详细内容】
2021-11-05  Java热点    Tags:SQL语句   点击:(28)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条