MySQL NDB集群安装配置(mysql cluster 9.4.13 installation)
一、安装前规划
1、安装软件版本:mysql-cluster-gpl-7.4.13-linux-glibc2.5-x86_64.tar.gz
2、安装规划:
主机名 |
Ip地址 |
角色 |
db01 |
192.168.100.131 |
管理节点 |
db02 |
192.168.100.132 |
SQL节点 |
db03 |
192.168.100.133 |
SQL节点 |
db04 |
192.168.100.134 |
data节点 |
db05 |
192.168.100.135 |
data节点 |
3、配置/etc/hosts文件(所有节点):
192.168.100.231 db01
192.168.100.232 db02
192.168.100.233 db03
192.168.100.234 db04
192.168.100.235 db05
二、安装NDB Cluster
1、SQL节点安装:
在每一个被指定为SQL节点的主机上,使用root用户执行以下步骤:
1)检查你的操作系统上是否已经创建了mysql组及mysql用户,一些操作系统在安装时会预创建mysql组及mysql用户,如果你的操作系统上没有创建这些,那么通过如下步骤创建mysql组及mysql用户。
shell> groupadd mysql
shell> useradd -g mysql -s /bin/false mysql
2)在本地操作系统下载mysql软件目录中,解压安装软件,并移动到/usr/local/目录下,根据需要是否使用软连接(ln -s)。
shell> cd /mnt
shell> tar -C /usr/local -xzvf mysql-cluster-gpl-7.4.13-linux-glibc2.5-x86_64.tar.gz
shell> ln -s /usr/local/mysql-cluster-gpl-7.4.13-linux-glibc2.5-x86_64 /usr/local/mysql
3)进入到本地的mysql安装目录,并且通过mysqld --initialize命令初始化mysql系统数据库。
shell> cd mysql
shell> mysqld --initialize
当然,你也可以进入mysql安装目录,通过mysql_install_db命令初始化mysql系统数据库。
shell> cd mysql
shell> scripts/mysql_install_db --user=mysql
然而,这种方式是不推荐使用的,因为mysql_install_db将被弃用在以后的版本中。
4)为mysql服务器和data目录设置必要的权限。
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
5)copy mysql启动脚本到/etc/rc.d/init.d/下,并且设置可执行文件,然后通过chkconfig命令添加为服务。
shell> cp support-files/mysql.server /etc/rc.d/init.d/
shell> chmod +x /etc/rc.d/init.d/mysql.server
shell> chkconfig --add mysql.server
记住,必须在每一台SQL节点上执行以上步骤。
2、data节点安装:
安装data节点不需要mysql二进制文件,仅需要在NDB cluster的data节点执行ndbd(single-treaded) or ndbmtd(multi-threaded),mysql二进制安装文件也包含在以上的tar包中。
以root用户登录操作系统,执行以下步骤安装data 节点在每一台data 节点服务器上。
1)进入到mysql下载目录下,并且抓取这个ndbd和ndbmtd二进制文件到/usr/local/bin/目录下,
shell> cd /mnt
shell> tar -zxvf mysql-5.7.17-ndb-7.5.6-linux-i686-glibc23.tar.gz
shell> cd mysql-5.7.17-ndb-7.5.6-linux-i686-glibc23
shell> cp bin/ndbd /usr/local/bin/ndbd
shell> cp bin/ndbmtd /usr/local/bin/ndbmtd
在ndbd和ndbdmtd已经复制到/usr/local/bin/下后,你也可以删除mysql解压目录和下载文件,并且这是非常安全的。
2)进入到/ust/local/bin/目录下,将步骤1 copy的ndbd和ndbmtd文件设置为可执行文件。
shell> cd /usr/local/bin
shell> chmod +x ndb*
执行以上这些步骤在每一台data节点服务器上。
3、Management 节点安装:
安装管理节点不需要mysql二进制文件,仅需要安装NDB cluster management server (ndb_mgmd),并且你可能还想安装management client (ndb_mgm),所有的这些都可以在tar包中发现。
以root用户身份登录操作系统,执行安装ndb_mgmd 和ndb_mgm命令在management节点服务器上。
1)进入到mysql解压目录,抓取ndb_mgmd和ndb_mgm二进制文件copy到/usr/local/bin/目录下。
shell> cd /var/tmp
shell> tar -zxvf mysql-5.7.17-ndb-7.5.6-linux2.6-i686.tar.gz
shell> cd mysql-5.7.17-ndb-7.5.6-linux2.6-i686
shell> cp bin/ndb_mgm* /usr/local/bin
你也可以删除mysql解压目录和下载文件,并且这是非常安全的。
2)进入到/ust/local/bin/目录下,将步骤1 copy的ndb_mgmd和ndb_mgm文件设置为可执行文件。
shell> cd /usr/local/bin
shell> chmod +x ndb_mgm*
三、配置NDB Cluster
这里描述如何通过最小化配置部署一个NDB cluster集群。
说明:每一个data节点和SQL节点需要配置一个my.cnf文件,并且提供两个选项的说明:其中一个告诉哪里可以找到management节点;另一个告诉mysql 服务器这个主机是否启动NDB Cluster存储引擎。
管理节点需要配置一个congin.ini的配置文件,它描述了集群存在几个副本,在每一个节点为数据和索引各分配多少内存,数据节点在哪里,每一个数据节点中在磁盘的哪里保存数据,以及存在哪些SQL节点。
1、配置数据节点和SQL节点
数据节点和SQL节点在my.cnf文件所需要的配置相当简单,并且这个文件应该放在/etc/目录下,可以通过任何编辑器对其进行编辑,例如:
shell> vi /etc/my.cnf
每个数据节点和SQL节点配置可以参考如下内容:
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine
[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=192.168.0.10 # location of management server
本例中每个sql节点和data节点/etc/my.cnf示例配置如下:
[mysqld] basedir=/usr/local/mysql/ datadir=/usr/local/mysql/data/ user=mysql log-error=/usr/local/mysql/data/sqlnode.err ndbcluster ndb-connectstring=db01 [mysql_cluster] ndb-connectstring=db01 |
2、配置管理节点
配置管理节点的第一步是创建目录和创建配置文件本身(以root用户身份执行)。
shell> mkdir /var/lib/mysql-cluster
shell> cd /var/lib/mysql-cluster
shell> vi config.ini
管理节点的config.ini配置文件内容可能如下:
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2 # Number of replicas
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for index storage
# For DataMemory and IndexMemory, we have used the
# default values. Since the "world" database takes up
# only about 500KB, this should be more than enough for
# this example Cluster setup.
[tcp default]
# TCP/IP options:
portnumber=2202 # This the default; however, you can use any
# port that is free for all the hosts in the cluster
# Note: It is recommended that you do not specify the port
# number at all and simply allow the default value to be used
# instead
[ndb_mgmd]
# Management process options:
hostname=192.168.0.10 # Hostname or IP address of MGM node
datadir=/var/lib/mysql-cluster # Directory for MGM node log files
[ndbd]
# Options for data node "A":
# (one [ndbd] section per data node)
hostname=192.168.0.30 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[ndbd]
# Options for data node "B":
hostname=192.168.0.40 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[mysqld]
# SQL node options:
hostname=192.168.0.20 # Hostname or IP address
# (additional mysqld connections can be
# specified for this node for various
# purposes such as running ndb_restore)
本例中管理节点config.ini文件内容如下:
[ndbd default] NoOfReplicas=1 DataMemory=100M IndexMemory=80M [tcp default] portnumber=2202 [ndb_mgmd] hostname=db01 datadir=/var/lib/mysql-cluster [ndbd] hostname=db04 datadir=/usr/local/mysql/data [ndbd] hostname=db05 datadir=/usr/local/mysql/data [mysqld] hostname=db02 [mysqld] hostname=db03 |
说明:mysql cluster默认管理节点端口号是1186,;默认数据节点端口号是2202;然而,集群可以自动获得端口为哪些自由的数据节点。
四、启动集群
在成功配置后启动集群并不是很困难,每个解决节点必须分别被启动,首先启动管理节点,其次启动数据节点,最后再启动SQL节点。
1、在管理节点主机上,在shell中输入如下内容用于启动管理节点:
shell> ndb_mgmd -f /var/lib/mysql-cluster/config.ini
2、在每一个数据节点上,shell下运行ndbd命令用于启动数据节点:
shell> ndbd
3、在每一个sql节点上,通过mysql启动命令启动SQL节点:
shell>service mysqld start
如果一切顺利,集群可以正确启动,现在你可以进行一些测试操作。你可以使用管理节点客户端测试工具ndb_mgm,输出当前的集群配置信息及运行状态。
ndb_mgm> show Connected to Management Server at: localhost:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 @192.168.100.234 (mysql-5.6.34 ndb-7.4.13, Nodegroup: 0, *) id=3 @192.168.100.235 (mysql-5.6.34 ndb-7.4.13, Nodegroup: 1) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.100.231 (mysql-5.6.34 ndb-7.4.13) [mysqld(API)] 2 node(s) id=4 @192.168.100.232 (mysql-5.6.34 ndb-7.4.13) id=5 @192.168.100.233 (mysql-5.6.34 ndb-7.4.13) |
五、关闭集群
想要关闭集群,在管理节点主机的shell下输入如下命令:
shell> ndb_mgm -e shutdown
这个-e命令可以安全的kill掉运行 ndb_mgm, ndb_mgmd, ndbd 或者 ndbmtd的进程。
如果想要关闭sql节点,应该使用mysql停止服务方法。
MySQL NDB集群安装配置(mysql cluster 9.4.13 installation)的更多相关文章
- MySQL PXC集群安装配置
1.关闭防火墙 [root@node04 ~]#systemctl disable firewalld [root@node04 ~]#systemctl stop firewalld [root@n ...
- mysql集群安装配置
看网上很多人说mysql集群不是很稳定,因此这2天做了下mysql的集群,打算配置没有什么问题了,过2天做下相关的性能测试,我的配置环境如下: 操作系统: Centos5.2 软件 ...
- redis cluster 集群 安装 配置 详解
redis cluster 集群 安装 配置 详解 张映 发表于 2015-05-01 分类目录: nosql 标签:cluster, redis, 安装, 配置, 集群 Redis 集群是一个提供在 ...
- hive集群安装配置
hive 是JAVA写的的一个数据仓库,依赖hadoop.没有安装hadoop的,请参考http://blog.csdn.net/lovemelovemycode/article/details/91 ...
- RabbitMQ集群安装配置+HAproxy+Keepalived高可用
RabbitMQ集群安装配置+HAproxy+Keepalived高可用 转自:https://www.linuxidc.com/Linux/2016-10/136492.htm rabbitmq 集 ...
- hbase单机环境的搭建和完全分布式Hbase集群安装配置
HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库.它是面向列的,并适合于存储超大型松散数据.HBase适合于实时,随机对Big数据进行读写操作的业务环境. @hbase单机环境的搭建 ...
- hbase和ZooKeeper集群安装配置
一:ZooKeeper集群安装配置 1:解压zookeeper-3.3.2.tar.gz并重命名为zookeeper. 2:进入~/zookeeper/conf目录: 拷贝zoo_sample.cfg ...
- Hadoop2.2集群安装配置-Spark集群安装部署
配置安装Hadoop2.2.0 部署spark 1.0的流程 一.环境描写叙述 本实验在一台Windows7-64下安装Vmware.在Vmware里安装两虚拟机分别例如以下 主机名spark1(19 ...
- CentOS下Hadoop-2.2.0集群安装配置
对于一个刚开始学习Spark的人来说,当然首先需要把环境搭建好,再跑几个例子,目前比较流行的部署是Spark On Yarn,作为新手,我觉得有必要走一遍Hadoop的集群安装配置,而不仅仅停留在本地 ...
随机推荐
- Java按钮控件数组实现计算器界面
编写程序,通过按钮数组来管理界面中的所有按钮控件,从而使用最少的代码实现模拟的计算器界面. 思路如下: 创建一个类,通过extends使其继承窗体类JFrame: 创建一个JFrame对象,使用JFr ...
- 【NodeJS】热更新
1.npm install -g supervisor 2.supervisor WellDetect.js
- 【Android】ProgressBar
http://www.cnblogs.com/wangying222/p/5304990.html http://www.cnblogs.com/plokmju/p/android_ProgressB ...
- Java中获取资源文件的方法总结
这里总结3中方法获取资源文件的 ServletContext Class ClassLoader 文件的位置 1. ServletContext public void doGet(HttpServl ...
- 在taro中跳转页面的时候执行两遍componentDidMount周期的原因和解决方法
在做taro跳转的时候,发现在跳转后的页面会走两遍componentDidMount周期,查看了github上的issues,发现是跳转路由带参为中文引起的,只要把中文参数进行urlencode解决 ...
- php-fpm配置文件
php-fpm配置文件 1.php-5.2的php-fpm <?xml version="1.0" ?> <configuration> <secti ...
- [转]C++中模板的特化与偏特化
转载自:http://hi.baidu.com/klcdyx2008/blog/item/5adbf77b79f316f90bd1873c.html 1.引言C++中的模板分为类模板和函数模板,虽然它 ...
- vue经验 - 实战疑点总结
1.注册全局组件(是一个单vue页面组成的一个组件,而不是现拼的template结构) 结构: 代码:main.js import UserList from './components/UserLi ...
- MFC onchar()
为什么在CView类中可以对ON_CHAR进行相应,添加消息处理函数onchar就可以了,但是在CDialog中要对ON_CHAR相应,直接添加不行? CView相当于Text控件,你可以在Text控 ...
- IIS7 windows 下安装PHP
首先要下载 php for windows 这个软件,百度一搜一大把. 1.我安装的是5.3.22版,就以这个为例给大家解说一下. 安装就是下一步,下一步,到一个选项 IIS FastCGI 选这个! ...