CentOS6.8搭建mysql-cluster-gp-7.4.13

mysql-cluster集群官方文档介绍:

https://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-overview.html

安装要求

安装环境:CentOS-6.8

安装方式:源码编译安装

软件名称:mysql-cluster-gpl-7.4.13-linux-glibc2.5-x86_64.tar.gz

下载地址:http://mysql.mirror.kangaroot.net/Downloads/

软件安装位置:/usr/local/mysql

数据存放位置:/usr/local/mysql/data

集群设计

2.1 集群设计

首先设计集群的安装分配方式,我共需要5台服务器,服务器分配如下:

管理节点: 192.168.1.231

sql节点1: 192.168.1.232

sql节点2: 192.168.1.233

数据节点1: 192.168.1.234

数据节点2: 192.168.1.235

 

2.2 检查安装的mysql

检查系统中已经安装过的mysql信息,操作如下:


[root@my-mgm ~]# rpm -qa | grep mysql
[root@my-mgm ~]# service mysql status

如果安装过其他版本的mysql,请卸载,操作如下:


[root@my-mgm ~]# /etc/init.d/mysqld stop //关闭目前的mysql服务 
[root@my-mgm ~]# ps -ef | grep mysql* //检验mysql是否已经关闭 
#如果没关闭,执行kill
-9 端口号 
#执行删除 
rpm -e --allmatches --nodeps mysql mysql-server mysql-libs
rm -rf /var/lib/mysql // 删除mysql的安装目录

安装mysql-cluster

集群中的每台服务器都要安装

3.1 安装软件


[root@my-mgm ~]# groupadd mysql
[root@my-mgm ~]# useradd mysql -g mysql  -s /sbin/nologin -M
[root@my-mgm ~]# chown -R mysql.mysql /var/mysql
[root@my-mgm local]# cd /usr/local
[root@my-mgm local]# tar -zxvf
mysql-cluster-gpl-7.4.14-linux-glibc2.5-x86_64.tar.gz
[root@my-mgm local]# mv mysql-cluster-gpl-7.4.14-linux-glibc2.5-x86_64 mysql
[root@my-mgm local]# chown -R mysql.mysql mysql
[root@my-mgm mysql]# scripts/mysql_install_db --user=mysql
--basedir=/usr/local/mysql
[root@my-mgm mysql]# chown -R mysql.mysql .   #非常重要
[root@my-mgm mysql]# cp support-files/my-default.cnf /etc/my.cnf

3.2 mysqld服务加入开机自启动项

[root@my-mgm mysql]# cp support-files/mysql.server /etc/init.d/mysqld

会提示是否覆盖,输入yes

这样就可以用service mysqld {start | restart | stop}

[root@my-mgm ~]# chkconfig --add mysqld 注意:sql节点不需要做这一步,因为mysql集群启动是有顺序的,sql节点要最后启动

验证是否成功

[root@my-mgm ~]# chkconfig --list mysqld

3.3 配置环境变量

为了避免每次都输入mysql的全路径,可将其加入环境变量中

vim /etc/profile 向其加入

#mysql_cluster path

MYSQL_HOME=/usr/local/mysql

export PATH=$PATH:$MYSQL_HOME/bin

然后执行 source /etc/profile使其升效

管理节点

安装管理节点(192.168.1.231

4.1 管理节点配置


[root@my-mgm ~]# mkdir /var/lib/mysql-cluster
[root@my-mgm ~]# cd /var/lib/mysql-cluster
[root@my-mgm mysql-cluster]# vim /var/lib/mysql-cluster/config.ini

config.ini中添加以下内容


[ndbd default]
NoOfReplicas=2 #定义在Cluster环境中相同数据的份数,最大为4
DataMemory=200M #每个数据节点中给数据分配的内存
IndexMemory=20M #每个数据节点中给索引分配的内存
MaxNoOfAttributes=20480
#该参数用于设置簇中触发程序对象的最大数目。该参数的默认值为768,不修改建表时可能会报708错误
[ndb_mgmd]
NodeId=1 #设置管理节点服务器
HostName=192.168.1.231
DataDir=/var/lib/mysql-cluster
[ndbd]
NodeId=2 #设置存储节点服务器(NDB节点)
HostName=192.168.1.232
DataDir=/usr/local/mysql/data
[ndbd]
NodeId=3
HostName=192.168.1.233
DataDir=/usr/local/mysql/data
[mysqld]
NodeId=4 #设置SQL节点服务器 
HostName=192.168.1.234
[mysqld]
NodeId=5
HostName=192.168.1.235
[mysqld]
#为空代表任意sql节点连接集群

4.3 管理节点启动

启动(必须用参数“-f“告诉ndb_mgm配置文件所在位置,默认是在ndb_mgmd相同目录下)

[root@my-mgm ~]# /usr/local/mysql/bin/ndb_mgmd -f
/var/lib/mysql-cluster/config.ini --initial

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

[root@my-mgm ~]#ndb_mgmd -f /var/lib/mysql-cluster/config.ini

iMySQL Cluster Management Server mysql-5.6.35 ndb-7.4.14

[root@my-mgm ~]# netstat -lntpu 或者 ps -aux | grep ndb_mgmd

看到tcp 0 0 0.0.0.0:1186开放说明启动正常

开启管理节点服务器的1186端口

4.4 管理节点检验

执行以下操作


[root@my-mgm ~]#ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from 192.168.1.234)
id=3 (not connected, accepting connect from 192.168.1.235)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.231 (mysql-5.6.35 ndb-7.4.14)

[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from 192.168.1.232)
id=5 (not connected, accepting connect from 192.168.1.233)

ndb_mgm>exit

4.5管理节点关闭


[root@my-mgm ~]# ndb_mgm -e shutdown
Connected to Management Server at: localhost:1186
1 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server to shutdown.

4.6 管理节点开机自动启动

vim /etc/rc.d/rc.local

加入 /usr/local/mysql/bin/ndb_mgmd -f
/var/lib/mysql-cluster/config.ini

数据节点

数据节点1:192.168.1.234

数据节点2:192.168.1.235

5.1 数据节点配置

对数据节点进行配置,执行以下操作:

[root@my-db1 ~]# vim /etc/my.cnf

清空my.cn文件加入以下内容:


[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
ndbcluster #使用ndb集群引擎
character_set_server=utf8
ndb-connectstring=192.168.1.231 #指定管理集群的ip地址,多个以,分隔
[mysql_cluster]
ndb-connectstring=192.168.1.231 #指定管理集群的ip地址,多个以,分隔
[ndb_mgm]
connect-string=192.168.1.231

针对数据节点2的安装重复5.1的操作

5.2 数据节点启动

启动此处时,管理节点服务器防火墙必须开启11863306端口

注意:只是在第一次启动或在备份/恢复或配置变化重启ndbd时,才加--initial参数!

第一次启动如下:


[root@my-db1 ~]# ndbd --initial
2017-02-09 11:13:22 [ndbd] INFO -- Angel connected to '192.168.1.231:1186'
2017-02-09 11:13:22 [ndbd] INFO -- Angel allocated nodeid: 2

正常启动方式:


[root@my-db1 ~]# ndbd

5.3 数据节点关闭


[root@my-db1 ~]# ps -ef | grep ndbd
[root@my-db1 ~]# kill -9 pid

5.4 数据节点加入开机自启动

vim /etc/rc.d/rc.local

加入 /usr/local/mysql/bin/ndbd

SQL节点设置

sql节点1:192.168.1.232

sql节点2:192.168.1.233

6.1 sql节点配置

sql节点进行配置,执行以下操作:

[root@my-sql1 ~]# vim /etc/my.cnf

清空my.cn文件加入以下内容:


[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
ndbcluster #使用ndb集群引擎
character_set_server=utf8
ndb-connectstring=192.168.1.231 #指定管理集群的ip地址,多个以,分隔
[mysql_cluster]
ndb-connectstring=192.168.1.231 #指定管理集群的ip地址,多个以,分隔
[ndb_mgm]
connect-string=192.168.1.231

针对sql节点2的安装重复6.1的操作

6.2 sql节点启动与关闭

service mysqld start|stop|restart|status

/etc/init.d/mysqld start|stop|restart|status

/etc/rc.d/init.d/mysqld start|stop|restart|status

mysqld_safe --user=mysql &

集群常用配置

7.1集群开启与关闭顺序

开启:管理节点->数据节点->SQL节点

关闭:SQL节点->数据节点->管理节点

7.2 集群状态查看

ndb_mgm -e show

7.3 测试集群

因为分布式集群,所以在mysql中创建的表存储引擎必须修改为:NDBCLUSTER,否则数据不会同步到其他节点服务器上。

创建数据库 create database mytest

创建表create table
test1(name varchar(10)) engine=ndbcluster;

这里必须指定数据库表的引擎为ndbcluster,与配置文件中名称相同

插入数据:insert into test1() values('张三');commit;

更改表的ENGINE为集群模式

ALTER TABLE TABLENAME ENGINE=NDBCLUSTER

查看表的引擎是不是NDB

show create table tablename

7.4 jdbc连接

单点配置:jdbc:mysql://192.168.1.232:3306/database

集群方式:jdbc:mysql:loadbalance://192.168.1.232:3306,192.168.1.233:3306/database?roundRobinLoadBalance=true

7.5创建数据库和用户

#mysql –u root –p

Mysql>create database goblog;

Mysql>grant all privileges on goblog.* to 'bloger'@'10.120.%'
identified by 'bloger';

Mysql>flush privileges;

Mysql>quit;

 

7.6 共享权限的实现

#share privilege 在每个sql节点执行下面语句

mysql -S /tmp/mysql.sock < /usr/local/mysql/share/ndb_dist_priv.sql

#one of cluster API 在其中一sql节点执行下面语句

CALL mysql.mysql_cluster_move_privileges();

FLUSH PRIVILEGES;

#init root password 初始化密码

mysqladmin -S /tmp/mysql.sock -u root password root

#one of cluster API 删除空密码用户

delete from user where LENGTH(password)<10;

#create user 设置用户远程登陆

GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.120.%' IDENTIFIED BY 'root';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.%' IDENTIFIED BY 'root';

 

时间: 2024-08-03 17:50:07

CentOS6.8搭建mysql-cluster-gp-7.4.13的相关文章

mysql cluster搭建

安装要求 安装环境:CentOS-6.4 安装方式:源码编译安装 软件名称:mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz 软件安装位置:/usr/local/mysql 数据存放位置:/var/mysql/data 日志存放位置:/var/mysql/logs 集群设计 首先设计集群的安装分配方式,我共需要5台服务器,服务器分配如下: 管理节点:    172.16.172.133 sql节点1:    172.16.172.132 sql节点2:

lvs keepalived mysql cluster搭建时出错

问题描述 lvs keepalived mysql cluster搭建时出错 就是搭好环境,然后随便弄一台虚拟机,通过mysql -h 192.168.2.200 -u nuo -p 却连接不上,那个ip是vip.然后ping 得通,SQL节点的权限也给了.就是连接不上.能帮我看下吗? 解决方案 keepalived.conf 配置如下: ! Configuration File for keepalived global_defs { router_id HaMySQL_1 } vrrp_sy

Linux下搭建MySQL集群

一.MySQL集群简介 1.什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(read-committedisolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phasedcommit)保证所有节点都有相同的数据(如果任何一个写操作失败,则更新失败). 无共享的对等节点使得某台服务器上的更新操作在其他服务器上立即可见.传播更新使用一种复杂的通信机制,这一机

从零开始搭建MySQL MMM架构_Mysql

云平台是个好东西,MySQL-mmm的典型配置是需要五台机器,一台作为mmm admin,两台master,两台slave.一下子找五台机器真不容易,何况还要安装同样的操作系统.而有了cloud,简单几步就有了完备的实验环境:四台数据库服务器和一台管理服务器(Memory:8G,CPU:2G,Disk:128G,64bit RHEL6).在此,向为付出辛劳搭建云平台的同事们表示由衷的感谢:-)下面言归正传,开始全新的MySQL mmm之旅. 下面要配置的MySQL Cluster环境包含四台数据

mysql cluster (mysql 集群)安装配置方案

一.准备 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以只用2台,我就是一台本机,一台虚拟机搭建了有5个节点的MySQL CLuster体系,将一个SQL节点一个数据节点一个SQL节点放在了一台服务器上(192.168.1.252),将另一个SQL节点和一个数据节点放在了另外一台服务器上(192.168.1.52). 节点 对应的IP和端口 管理节点(1个) 192.168.1.252 SQL节点 (2个) 192.1

mysql cluster存储引擎NDB,如何设置哪些数据不被LOAD到内存中?

问题描述 mysql cluster存储引擎NDB,如何设置哪些数据不被LOAD到内存中? mysql cluster存储引擎NDB,如何设置哪些数据不被LOAD到内存中?

MySQL Cluster 7.1.5 GA 发布

MySQL Cluster 是 MySQL 适合于分布式计算环境的高实用.高冗余版本.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器.在MyQL 5.0及以上的二进制版本中.以及与最新的Linux版本兼容的RPM中提供了该存储引擎. 该版本改进内容请看 Change History. 下载 MySQL Cluster

MySQL Cluster(MySQL集群)初试

MySQL Cluster 是MySQL适合于分布式计算环境的高实用.高冗余版本.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器.在MyQL 5.0及以上的二进制版本中.以及与最新的Linux版本兼容的RPM中提供了该存储引擎.(注意,要想获得MySQL Cluster 的功能,必须安装 mysql-server 和 mysql-max RPM). 目前能够运行MySQL Cluster 的操作系统有Linux.Mac OS X和Solaris(

Windows环境下配置MySQL Cluster

  一.准备工作 首先得准备好硬件设施.我这里是3台机器在做群集.结构如下: 管理节点(MGM) 172.16.0.162(db1) SQL节点1(SQL1) 172.16.0.161(db2) SQL节点2(SQL2) 172.16.0.202(db3) 数据节点1(NDBD1) 172.16.0.161(db4) 数据节点2(NDBD2) 172.16.0.202(db4) 这个硬件搞定了.现在搞软件 最好下载7以上的版本.因为性能好嘛,7.2这个版本的新特性上介绍说是:自适应查询本地化(A

Linux上搭建mysql集群,window进行远程

问题描述 Linux上搭建mysql集群,window进行远程 我想在window上远程Linux的mysql,Linux上的mysql是分布式mysql集群. 希望有经验的大牛能个指引.Linux上的mysql集群如何搭建?搭建完成后,window怎么远程? 解决方案 window下的mysql集群搭建Linux下MySQL/MariaDB Galera集群搭建过程