MySQL Cluster单机搭建集群环境
MySQL CLUSTER 集群方案

在任意一台机子上启动管理终端:
# ndb_mgm
键入show命令查看当前工作状态:(下面是一个状态输出示例)
– NDB Cluster — Management Client –
ndb_mgm> show
Connected to Management Server at: 192.168.1.111:1186
MySQL CLUSTER 集群方案
来源:网络
(1.双机实现高可用)
一、介绍
这篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySql集群依然能够继续运行。加下后续的(keepalived+lvs+mysql cluster文档),可以实现Mysql双机的高可用及负载均衡。
启动管理节点Server2为:
# ndb_mgmd –ndb_nodeid=2
注:在启动时有一个警告提示
Cluster configuration warning:
arbitrator with id 1 and db node with id 3 on same host 192.168.1.111
Id=1
HostName= 192.168.1.111
[ndb_mgmd]
Id=2
HostName= 192.168.1.110
[ndbd]
Id= 3
HostName= 192.168.1.111
[ndbd]
Id= 4
HostName= 192.168.1.110
[mysqld]
TimeBetweenWatchDogCheck= 30000
MySQL集群部署与管理方法

MySQL集群部署与管理方法随着数据量的不断增加以及对高可用性和容错性要求的提高,使用单节点的MySQL数据库已经不再满足需求。
为了满足这些需求,MySQL集群成为了一种常见的选择。
本文将介绍MySQL集群的部署与管理方法,帮助读者更好地理解和应用MySQL集群。
一、MySQL集群的概述MySQL集群是一个由多个MySQL实例组成的系统,在这个系统中,各个实例通过网络相互通信,共同提供数据库服务。
MySQL集群可以实现数据的分布式存储和高可用性,从而提高整个系统的性能和可靠性。
二、MySQL集群的部署MySQL集群的部署需要以下步骤:1. 硬件规划在部署MySQL集群之前,需要对硬件资源进行规划。
根据业务需求和预期的负载,选择适当的硬件配置,包括CPU、内存和存储设备等。
2. 安装MySQL在每个节点上安装MySQL数据库软件。
可以从MySQL官方网站下载最新的MySQL安装包,并按照安装指南进行安装。
确保在安装过程中选择正确的选项,以支持集群功能。
3. 配置网络配置节点之间的网络连接,包括IP地址、子网掩码和网关等。
确保网络配置的正确性,以便节点之间可以正常通信。
4. 配置集群软件在每个节点上配置集群软件,例如MySQL Cluster或Percona XtraDB Cluster。
根据官方文档提供的指南,进行相应的配置和参数调整,以满足业务需求。
5. 创建集群使用集群软件提供的命令或界面,创建一个MySQL集群。
在集群创建过程中,需要指定集群的节点数、复制因子和数据分片等参数。
6. 数据导入将现有的MySQL数据库中的数据导入到集群中。
可以使用MySQL提供的导入工具,例如mysqldump或mysqlimport。
确保在导入数据的过程中,数据的完整性和一致性得到保证。
7. 启动集群在所有节点上启动MySQL集群,观察集群的状态以及节点之间的同步情况。
确保集群正常运行,并能够提供数据库服务。
MySQL数据库集群架构与部署指南

MySQL数据库集群架构与部署指南随着数据量和访问量的增长,单一的MySQL数据库已经不能满足高可用和高性能的需求。
为了满足这些需求,使用MySQL数据库集群是一个理想的解决方案。
本文将介绍MySQL数据库集群的架构和部署指南,帮助您构建和管理一个稳定的MySQL集群。
一、概述MySQL数据库集群是由多个MySQL数据库服务器组成的,这些服务器共享相同的数据集。
通过将数据分布到不同的节点上,可以提高系统的可扩展性和吞吐量。
二、MySQL数据库集群架构MySQL数据库集群通常由三个主要组件组成:数据库节点、管理节点和负载均衡器。
1. 数据库节点数据库节点是实际存储和处理数据库数据的服务器。
它们负责数据的读写操作。
您可以根据系统需求,增加或减少数据库节点的数量。
2. 管理节点管理节点用于控制数据库节点的状态和配置。
它们负责数据的复制和同步,以及故障检测和自动故障转移。
3. 负载均衡器负载均衡器用于将客户端请求分发到不同的数据库节点上,以实现负载均衡和高可用性。
常用的负载均衡器有Nginx、HAProxy等。
三、MySQL数据库集群的部署指南以下是MySQL数据库集群的部署指南,以帮助您构建一个稳定和高效的集群环境。
1. 硬件要求在选择硬件时,应考虑以下几个因素:- 容量:确保每个节点具有足够的存储容量,以满足数据的需求。
- 内存:为每个数据库节点提供足够的内存,以支持高并发访问和查询性能。
- CPU:选择高性能的多核CPU,以提供卓越的计算能力。
2. 操作系统选择适合MySQL数据库集群的操作系统有Linux、Unix等。
根据您的需求和熟悉程度选择最合适的操作系统。
3. 数据库节点部署配置每个数据库节点时,注意以下几个要点:- 数据库版本:确保所有节点使用相同的MySQL版本。
- 数据分布:合理划分数据集,确保每个节点的数据负载均衡。
- 复制策略:选择适当的复制策略,包括主从复制、主主复制等。
4. 管理节点部署部署管理节点时,需要注意以下几个关键点:- 配置管理节点的高可用性,采用冗余方案,防止单点故障。
MySQL数据库集群安装与配置指南

MySQL数据库集群安装与配置指南1. 引言数据库是现代软件系统中不可或缺的重要组成部分,而MySQL数据库则是其中使用最广泛的一种关系型数据库管理系统。
随着数据量和访问压力的增加,单个MySQL数据库服务器往往无法满足高可用性和高并发性的要求。
为了解决这一问题,MySQL数据库集群应运而生。
本文将介绍MySQL数据库集群的安装与配置指南,帮助读者快速搭建一个稳定可靠的数据库集群环境。
2. 准备工作在开始安装和配置MySQL数据库集群之前,您需要准备以下工作:- 一组具备相同操作系统和硬件配置的服务器节点,用于搭建集群。
服务器节点数量取决于负载和可用性需求,一般至少需要三个节点。
- 确保服务器节点之间可以互相通信,可以通过本地网络或者云平台提供的虚拟私有网络(VPC)来实现。
- 下载最新版本的MySQL数据库软件,官方网站提供了各种操作系统下的二进制发行版和源码包。
3. 安装MySQL数据库软件需要在每个服务器节点上安装MySQL数据库软件。
具体安装步骤如下:- 解压MySQL二进制发行版或者编译安装MySQL源码包。
- 配置MySQL实例的基本参数,包括端口号、字符集、缓存大小等。
可以通过编辑`f`配置文件来实现。
- 启动MySQL实例并进行初次配置,包括设置root用户密码、删除不必要的测试数据库等。
4. 配置数据库复制数据库复制是MySQL数据库集群实现高可用性和数据备份的重要机制。
在MySQL数据库集群中,一个节点充当主节点(master),其他节点为从节点(slave)。
具体配置步骤如下:- 在主节点上开启二进制日志(binary log),用于记录数据库的所有操作。
- 在从节点上配置主节点的IP地址和端口号,以及从节点的唯一标识。
- 在从节点上启动复制进程,使其能够连接到主节点并获取主节点的二进制日志。
5. 配置负载均衡负载均衡是MySQL数据库集群实现高并发性的重要机制。
在MySQL数据库集群中,可以使用代理服务器或者分布式文件系统来实现负载均衡。
如何在一台计算机上安装配置mysql-cluster

1.据说从mysql 5.1 以后mysql安装包里就不包含mysql cluster ,而是单独作为一个产品发布,目前mysql网站上最新的版本是mysql cluster 7.2.7。
下载地址:/downloads/cluster/#downloads2.建立有5个节点的MySQL CLuster体系( OS : REDHAT 6.1 )管理节点(MGM) 192.168.251.141SQL节点1(SQL1) 192.168.251.141SQL节点2(SQL2) 192.168.251.141数据节点1(NDBD1) 192.168.251.141数据节点2(NDBD2) 192.168.251.1413.首先去下载文件mysql-cluster-gpl-7.2.7-linux2.6-x86_64.tar.gz4.解压文件到/mysqlData/ 并重命名为mysql-cluster[root@dbcp-db01 mysqlData]# pwd/mysqlData[root@dbcp-db01 mysqlData]# lsmysql-cluster-gpl-7.2.7-linux2.6-x86_64.tar.gz mysql-cluster5.建立软连ln -s /mysqlData/mysql-cluster/ /usr/local/mysql6.在/etc/profile 加入export PATH=$PATH:/usr/local/mysql/binecho “export PATH=$PATH:/usr/local/mysql/bin” >> /etc/profilesource /etc/profile7.配置管理节点[root@dbcp-db01 config]# vi /data/config/mysqlcluster.ini[NDBD DEFAULT]NoOfReplicas=1[TCP DEFAULT]portnumber=3388#[NDB_MGMD]NodeId = 1hostname=192.168.251.141#datadir=/mysqlData/clustermgmd-data/#[NDBD]NodeId = 2hostname=192.168.251.141datadir=/mysqlData/clusterndb1-data/#[NDBD]NodeId = 3hostname=192.168.251.141datadir=/mysqlData/clustern db2-data/#[MYSQLD]NodeId = 4hostname=192.168.251.141#[MYSQLD]NodeId = 5hostname=192.168.251.141[MYSQLD]8.配置存储节点和SQL节点(配置两个cnf 配置不同的参数路径)[root@dbcp-db01 config]# vi /data/config/f[mysqld]ndbclusterbasedir=/mysqlData/mysql-clusterdatadir=/mysqlData/clusterndb1-data/socket=/data/socket/my-n1.sockpid-file=/data/socket/n1.pidlog-error = /mysqlLog/n1_err.logslow_query_log_file = /mysqlLog/n1_slow.logport = 3399ndb-connectstring=192.168.251.141[mysql_cluster]ndb-connectstring=192.168.251.141[root@dbcp-db01 config]# vi /data/config/f[mysqld]ndbclusterbasedir=/mysqlData/mysql-clusterdatadir=/mysqlData/clusterndb2-data/socket=/data/socket/my-n2.sockpid-file=/data/socket/n2.pidlog-error = /mysqlLog/n2_err.logslow_query_log_file = /mysqlLog/n2_slow.logport = 3398ndb-connectstring=192.168.251.141[mysql_cluster]ndb-connectstring=192.168.251.1419.建立mysql用户组和mysql用户groupadd mysqluseradd -g mysql mysql10.创建配置文件中所用到的目录mkdir -p /mysqlData/clusterndb2-data/mkdir -p /mysqlData/clusterndb1-data/mkdir -p /data/socket/mkdir -p /mysqlLog/mkdir -p /mysqlData/clustermgmd-data/11.更改相关目录的权限chown -R mysql.mysql /mysqlData/chown -R mysql.mysql /mysqlLog/12.初始化SQL节点[root@dbcp-db01 ~]# cd /usr/local/mysql/scripts/[root@dbcp-db01 scripts]# ./mysql_install_db --defaults-file=/data/config/f --datadir=/mysqlData/clusterndb1-data/ --user=mysql --basedir=/mysqlData/mysql-cluster/ &[1] 24447[root@dbcp-db01 scripts]# Installing MySQL system tables...OKFilling help tables...OKTo start mysqld at boot time you have to copysupport-files/mysql.server to the right place for your systemPLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !To do so, start the server, then issue the following commands:/mysqlData/mysql-cluster//bin/mysqladmin -u root password 'new-password'/mysqlData/mysql-cluster//bin/mysqladmin -u root -h dbcp-db01 password 'new-password'Alternatively you can run:/mysqlData/mysql-cluster//bin/mysql_secure_installationwhich will also give you the option of removing the testdatabases and anonymous user created by default. This isstrongly recommended for production servers.See the manual for more instructions.You can start the MySQL daemon with:cd /mysqlData/mysql-cluster/ ; /mysqlData/mysql-cluster//bin/mysqld_safe &You can test the MySQL daemon with mysql-test-run.plcd /mysqlData/mysql-cluster//mysql-test ; perl mysql-test-run.plPlease report any problems with the /mysqlData/mysql-cluster//scripts/mysqlbug script![root@dbcp-db01 ~]# cd /usr/local/mysql/scripts/[root@dbcp-db01 scripts]# ./mysql_install_db --defaults-file=/data/config/f --datadir=/mysqlData/clusterndb1-data/ --user=mysql --basedir=/mysqlData/mysql-cluster/ &[1] 24508[root@dbcp-db01 scripts]# Installing MySQL system tables...OKFilling help tables...OK.......13.启动mysql-cluster,启动顺序为管理节点->存储节点->SQL节点A. 启动管理节点[root@dbcp-db01 ~]# ndb_mgmd -f /data/config/mysqlcluster.iniMySQL Cluster Management Server mysql-5.5.25 ndb-7.2.7[root@dbcp-db01 ~]#B. 启动存储节点[root@dbcp-db01 scripts]# /usr/local/mysql/bin/ndbd --defaults-file=/data/config/f --initial2012-08-10 11:25:13 [ndbd] INFO -- Angel connected to '192.168.251.141:1186'2012-08-10 11:25:13 [ndbd] INFO -- Angel allocated nodeid: 2[root@dbcp-db01 scripts]# /usr/local/mysql/bin/ndbd --defaults-file=/data/config/f --initial2012-08-10 11:25:25 [ndbd] INFO -- Angel connected to '192.168.251.141:1186'2012-08-10 11:25:25 [ndbd] INFO -- Angel allocated nodeid: 3[root@dbcp-db01 scripts]#C. 启动SQL节点[root@dbcp-db01 scripts]# mysqld_safe --defaults-file=/data/config/f --user=mysql &[1] 24649[root@dbcp-db01 scripts]# 120810 11:26:41 mysqld_safe Logging to '/mysqlLog/n1_err.log'.120810 11:26:41 mysqld_safe Starting mysqld daemon with databases from /mysqlData/clusterndb1-data/[root@dbcp-db01 scripts]# ps aux | grep mysqldroot 24649 0.1 0.0 106012 1316 pts/1 S 11:26 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/data/config/f --user=mysqlmysql 24732 1.2 2.2 953944 46772 pts/1 Sl 11:26 0:00 /usr/libexec/mysqld --defaults-file=/data/config/f --basedir=/mysqlData/mysql-cluster--datadir=/mysqlData/clusterndb1-data/ --user=mysql --log-error=/mysqlLog/n1_err.log --pid-file=/data/socket/n1.pid --socket=/data/socket/my-n1.sock --port=3399root 24760 0.0 0.0 103152 796 pts/1 S+ 11:27 0:00 grep mysqld[root@dbcp-db01 scripts]# mysqld_safe --defaults-file=/data/config/f --user=mysql &[2] 24761[root@dbcp-db01 scripts]# 120810 11:27:18 mysqld_safe Logging to '/mysqlLog/n2_err.log'.120810 11:27:18 mysqld_safe Starting mysqld daemon with databases from /mysqlData/clusterndb2-data/[root@dbcp-db01 scripts]# ps aux | grep mysqldroot 24649 0.0 0.0 106012 1316 pts/1 S 11:26 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/data/config/f --user=mysqlmysql 24732 0.8 2.2 953944 47184 pts/1 Sl 11:26 0:00 /usr/libexec/mysqld --defaults-file=/data/config/f --basedir=/mysqlData/mysql-cluster--datadir=/mysqlData/clusterndb1-data/ --user=mysql --log-error=/mysqlLog/n1_err.log --pid-file=/data/socket/n1.pid --socket=/data/socket/my-n1.sock --port=3399root 24761 0.2 0.0 106012 1320 pts/1 S 11:27 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/data/config/f --user=mysqlmysql 24844 2.6 2.2 953944 46932 pts/1 Sl 11:27 0:00 /usr/libexec/mysqld --defaults-file=/data/config/f --basedir=/mysqlData/mysql-cluster--datadir=/mysqlData/clusterndb2-data/ --user=mysql --log-error=/mysqlLog/n2_err.log --pid-file=/data/socket/n2.pid --socket=/data/socket/my-n2.sock --port=3398root 24873 0.0 0.0 103152 796 pts/1 S+ 11:27 0:00 grep mysqld[root@dbcp-db01 scripts]#14.所有节点都启动了用ndb_mgm 查看[root@dbcp-db01 ~]# ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showConnected to Management Server at: localhost:1186Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=2 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0, Master)id=3 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7, Nodegroup: 1)[ndb_mgmd(MGM)] 1 node(s)id=1 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7)[mysqld(API)] 2 node(s)id=4 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7)id=5 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7)ndb_mgm>15.在SQL节点端口3399上创建数据库,表,插入数据[root@dbcp-db01 config]# mysql -uroot -p -S /data/socket/my-n1.sockEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.5.25a-ndb-7.2.7-gpl MySQL Cluster Community Server (GPL)Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.This software comes with ABSOLUTELY NO WARRANTY. This is free software,and you are welcome to modify and redistribute it under the GPL v2 licenseType 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database cluster_one;Query OK, 1 row affected (0.12 sec)mysql> use cluster_oneDatabase changedmysql> create table c_tb_a (id int ,tname varchar(10)) engine = ndbcluster default charset utf8;Query OK, 0 rows affected (0.25 sec)mysql> insert into c_tb_a values (1,'qqqqqq');Query OK, 1 row affected (0.01 sec)mysql> insert into c_tb_a values (2,'dddddd');Query OK, 1 row affected (0.00 sec)mysql>16.在SQL节点端口3398 上查询数据[root@dbcp-db01 config]# mysql -uroot -p -S /data/socket/my-n2.sockEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.5.25a-ndb-7.2.7-gpl MySQL Cluster Community Server (GPL)Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.This software comes with ABSOLUTELY NO WARRANTY. This is free software,and you are welcome to modify and redistribute it under the GPL v2 licenseType 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || cluster_one || mysql || ndb_3_fs || ndbinfo || performance_schema || test |+--------------------+7 rows in set (0.04 sec)mysql> use cluster_oneReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+-----------------------+| Tables_in_cluster_one |+-----------------------+| c_tb_a |+-----------------------+1 row in set (0.00 sec)mysql> select * from c_tb_a;+------+--------+| id | tname |+------+--------+| 1 | qqqqqq || 2 | dddddd |+------+--------+2 rows in set (0.00 sec)mysql>以上就是在一台计算机上安装配置mysql cluster 的过程,其实跟在多台机器上配置差不多,只是在配置cnf的时候要用不同的路径,要注意的是在初始化的时候把--defaults-file --datadir --basedir 几个参数加上。
MySQL数据库集群架构与部署指南

MySQL数据库集群架构与部署指南MySQL数据库是一种开源的关系型数据库管理系统,被广泛应用于各种规模的应用程序中。
随着数据量的增加和并发压力的增加,单个MySQL数据库的性能和可靠性可能会变得不足以满足需求。
因此,MySQL数据库集群架构的部署变得越来越重要。
本文将介绍MySQL数据库集群架构的基本概念和原理,并提供一份详细的部署指南,帮助读者理解和搭建自己的MySQL数据库集群。
## 1. MySQL数据库集群架构概述在了解MySQL数据库集群的部署指南之前,首先需要了解MySQL 数据库集群的概念和基本架构。
MySQL数据库集群是一个由多个MySQL数据库服务器组成的系统,共同处理数据库请求,提供高可用性和负载均衡。
MySQL数据库集群的架构可以分为以下几个关键组件:- 数据库服务器(Database Server):承担数据存储和处理任务的服务器,可以有一个或多个。
- 数据节点(Data Node):用于存储和处理实际数据的服务器。
- 管理节点(Management Node):负责管理整个集群的配置、监控和故障恢复。
- 存储引擎(Storage Engine):负责处理具体数据的访问和管理,如InnoDB、MyISAM等。
## 2. MySQL数据库集群部署前的准备在开始部署MySQL数据库集群之前,需要进行一些准备工作。
以下是准备工作的步骤和注意事项:### 2.1 硬件和网络环境评估评估和选择适合自己应用需求的硬件资源,包括CPU、内存、磁盘空间等。
同时,确保网络环境能够满足集群的数据传输需求,例如带宽、延迟等。
### 2.2 数据库备份与恢复策略制定合适的数据库备份与恢复策略,包括备份频率、备份存储位置、备份数据的完整性等。
这将极大地提高数据的可靠性和安全性。
### 2.3 安全措施采取适当的安全措施保护数据库集群的安全,例如访问控制、SSL加密、防火墙等。
### 2.4 数据库分区和复制策略根据自身业务需求,合理规划数据库的分区和复制策略,以提高性能和可用性。
Galera_Cluster_for_MySQL集群搭建

Galera_Cluster_for_MySQL集群搭建Galera Cluster for MySQL集群搭建要架设Galera Cluster Server,有两种套件选择,⼀个是Percona XtraDB Cluster另⼀个是MariaDB Galera Cluster,这次介绍后者的安装。
Galera Cluster 介绍为什么要选择Galera Cluster Server,它有什么优点及功能呢?MySQL/Galera 是⼀套可以同步多台MySQL/InnoDB 机器的丛集系统,底下可以列出功能。
同步复制资料可读取和写⼊丛集系统内任⼀节点⾃动侦测节点错误,如果有节点当机,则丛集系统⾃动移除该节点可任意扩充节点采⽤row level ⽅式来平⾏复制资料从上⾯功能看来,我们可以平⾏任意扩充节点,动态增加服务器到丛集系统,要做到上⾯功能,就是利⽤Galera library来做到同步资料处理,同步的详细细节,可以参考Galera library连结。
这边就不再多描述了。
Galera Cluster的部署安装Galera Cluster Server本篇介绍的MySQL Server是使⽤MariaDB套件,⽽不是安装原始的MySQL。
CentOS和Ubuntu安装⽅式雷同,前者是⽤yum后者则是aptitude,在安装前请先下载对应的repository配置⽂件[https:///doc/662cccd0dc88d0d233d4b14e852458fb760b385d.html/mariadb/repositories/#mirror=qiming] CentOS$ yum -y update; yum -y upgrade$ yum –y install MariaDB-Galera-server MariaDB-clientgaleraUbuntu$ aptitude -y update$ aptitude -y install mariadb-galera-server-5.5 galera或者apt-get:$ apt-get -y update$ apt-get -y install mariadb-galera-server-5.5 galera启动MySQL$/etc/init.d/mysql start设置Galera Cluster Server先讲⼀下环境,⽬前总共两台Galera Server,IP 分别是:Node_1: 192.168.1.100Node_2: 192.168.1.101建⽴Node_1, Node_2 MySQL User,⽤来认证使⽤,先进⼊MySQL Console.$ mysql -u root -pWelcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connectionidis 154Server version: 10.0.1-MariaDB-mariadb1~precise-log/doc/662cccd0dc88d0d233d4b14e852458fb760b385d.html binary distributionCopyright (c) 2000, 2012, Oracle, Monty Program Ab and others.Type'help;'or'\h'forhelp. Type'\c'toclearthe current input statement.MariaDB [(none)]>建⽴cluster 使⽤者,密码为1234,针对% 跟localhost 同时建⽴。
Mysql-cluster环境配置V2

Mysql-cluster环境配置硬件环境4台机器192.168.1.10 管理节点192.168.1.11 存储节点SQL节点192.168.1.12 存储节点、SQL节点192.168.1.13 SQL节点软件环境:操作系统:CentOS 6 .5(64位)Mysql版本:MySQL-Cluster-gpl-7.3.5-1.el6.x86_64.rpm-bundle.tarmysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz(需要其中的两个文件)安装准备:1. 解压MySQL-Cluster-gpl-7.3.5-1.el6.x86_64.rpm-bundle.tar:将解压后的MySQL-Cluster-server-gpl-7.3.5-1.el6.x86_64.rpm分发至每台机器;将解压后的MySQL-Cluster-client-gpl-7.3.5-1.el6.x86_64.rpm分发至SQL节点;2. 清理旧的Mysql安装:yum -y remove mysqlrpm -qa | grep mysql*对于找到的1个剩余mysql包,请按照如下的命令格式予以删除:rpm -e --nodeps mysql-libs-5.1.61-4.el6.x86_643. 安装依赖库:yum -y install libaio安装MySQL Cluster:创建文件夹(分如下3个类来创建对应的文件夹)存储节点:mkdir /var/lib/mysql/data管理节点:mkdir /var/lib/mysql-cluster SQL节点:可不用文件夹授权进程DIR: mkdir /var/run/mysqld使用如下的命令来变更权限保证可写入:chmod -R 1777 /var/lib/mysqlchmod -R 1777 /var/run/mysqldchmod -R 1777 /var/lib/mysql-cluster1. 在每台机器上安装MySQL-Cluster-server-gpl-7.3.5-1.el6.x86_64.rpm执行命令:rpm -Uvh MySQL-Cluster-server-gpl-7.3.5-1.el6.x86_64.rpm安装后会提示默认密码存放在/root/.mysql_secret文件中(也有时候不提示)2. 在SQL节点上安装MySQL-Cluster-client-gpl-7.3.5-1.el6.x86_64.rpm执行命令:rpm -Uvh MySQL-Cluster-client-gpl-7.3.5-1.el6.x86_64.rpm配置管理节点:1.解压mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz,进入其mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64\bin目录找到ndb_mgm和ndb_mgmd,将其复制到管理节点的/usr/local/bin,然后使这两个文件成为可执行的:cd /usr/local/binchmod +x ndb_mgm*2.在管理节点上执行:cd /var/lib/mysql-clustervi config.ini内容如下:[ndbd default]NoOfReplicas=2DataMemory=80MIndexMemory=20M[ndb_mgmd]# Management process options:hostname=192.168.1.10 # Hostname or IP address of MGM nodedatadir=/var/lib/mysql-cluster # Directory for MGM node log files[ndbd]HostName=192.168.1.11DataDir=/var/lib/mysql/data[ndbd]HostName=192.168.1.12DataDir=/var/lib/mysql/data[mysqld]HostName=192.168.1.11[mysqld]HostName=192.168.1.12[mysqld]HostName=192.168.1.13配置两个管理节点,如下所示:[ndb_mgmd]hostname=192.168.1.10datadir=/var/lib/mysql-cluster[ndb_mgmd]hostname=192.168.1.13datadir=/var/lib/mysql-cluster需要配置两个ndb_mgmd同时存储节点和SQL节点修改如下:[mysqld]ndbclusterndb-connectstring=192.168.1.10,192.168.1.13[mysql_cluster]ndb-connectstring=192.168.1.10,192.168.1.13配置存储节点和SQL节点:在所有存储节点和SQL节点上建立配置文件:vi /etc/f内容如下:[client]socket=/var/lib/mysql/mysql.sock[mysqld]max_connections=100datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockndbclusterndb-connectstring=192.168.1.10[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid[mysql_cluster]ndb-connectstring=192.168.1.10~启动各个节点:注意顺序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运行环境:centos6.1Mysql版本:MySQL-cluster-gpl-7.2.6-linux2.6-x86_6下载地址:/Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.6-linux2. 6-x86_64.tar.gz对于这第一个MySQL数据库的集群,它由1个单一的MySQL服务引擎(mysqlds)、两个数据节点(ndbd)和一个单一的管理节点(ndb_mgmd)共同组成,所有的节点都运行在同一台主机上。
为配置文件和数据文件创建必要的存储文件夹,分别要建立如下几个文件夹:① /home/mysql/my_cluster② /home/mysql/my_cluster/ndb_data③ /home/mysql/my_cluster/mysqld_data④ /home/mysql/my_cluster/mysqld_data/mysql⑤ /home/mysql/my_cluster/mysqld_data/ndbinfo⑥ /home/mysql/my_cluster/conf具体安装步骤:1. 添用加户与组mysql[plain]view plaincopy1.shell> groupadd mysql2.shell> useradd -r -d /home/mysql -g mysql mysql[plain]view plain copy1.shell> groupadd mysql2.shell> useradd -r -d /home/mysql -g mysql mysql2. 切换到mysql用户权限下[plain]view plaincopy1.shell> su - mysql[plain]view plain copy1.shell> su - mysql3. 下载mysql cluster[plain]view plaincopy1.shell> wget /Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz2.shell> tar -zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz3.shell> ln -s mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysqlc[plain]view plain copy1.shell> wget /Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz2.shell> tar -zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz3.shell> ln -s mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysqlc4. 安装mysql cluster[plain]view plaincopy1.shell> cd /home/mysql2.shell> mkdir my_cluster my_cluster/ndb_data my_cluster/mysqld_data my_cluster/conf3.在conf目录添加以下2个配置文件(注意:“/home/mysql”需要替换为你自己的用户目录)4.f:6.[mysqld]7.ndbcluster8.datadir=/home/mysql/my_cluster/mysqld_data9.basedir=/home/mysql/mysqlc10.port=500011.12.config.ini:13.[ndb_mgmd]14.hostname=localhost15.datadir=/home/mysql/my_cluster/ndb_data16.NodeId=117.[ndbd default]18.noofreplicas=219.datadir=/home/mysql/my_cluster/ndb_data20.[ndbd]21.hostname=localhost22.NodeId=323.[ndbd]24.hostname=localhost25.NodeId=426.[mysqld]27.NodeId=5028.29.安装30.shell> cd /home/mysql/mysqlc31.shell> scripts/mysql_install_db --no-defaults --datadir=/home/mysql/my_cluster/mysqld_data/[plain]view plain copy1.shell> cd /home/mysql2.shell> mkdir my_cluster my_cluster/ndb_data my_cluster/mysqld_data my_cluster/conf3.在conf目录添加以下2个配置文件(注意:“/home/mysql”需要替换为你自己的用户目录)4.f:6.[mysqld]7.ndbcluster8.datadir=/home/mysql/my_cluster/mysqld_data9.basedir=/home/mysql/mysqlc10.port=500011.12.config.ini:13.[ndb_mgmd]14.hostname=localhost15.datadir=/home/mysql/my_cluster/ndb_data16.NodeId=117.[ndbd default]18.noofreplicas=219.datadir=/home/mysql/my_cluster/ndb_data20.[ndbd]21.hostname=localhost22.NodeId=323.[ndbd]24.hostname=localhost25.NodeId=426.[mysqld]27.NodeId=5028.29.安装30.shell> cd /home/mysql/mysqlc31.shell> scripts/mysql_install_db --no-defaults --datadir=/home/mysql/my_cluster/mysqld_data/5. 运行进程需要启动management node, data nodes 与MySQL Server[plain]view plaincopy1.shell> cd ../my_cluster/2.①最先启动的是管理节点(ndb_mgmd)3.shell> /home/mysql/mysqlc/bin/ndb_mgmd -f conf/config.ini --initial --configdir=/home/mysql/my_cluster/conf/4.②启动第一个数据节点(ndbd)5.shell> /home/mysql/mysqlc/bin/ndbd -c localhost:11866.③启动第二个数据节点(ndbd)7.shell> /home/mysql/mysqlc/bin/ndbd -c localhost:11868.9.在启动MySQL服务引擎(mysqld)之前,一定要等到所有的数据节点全部启动完毕,然后才能启动MySQL服务引擎。
查看数据节点是否启动完毕的命令语句如下:10.shell> /home/mysql/mysqlc/bin/ndb_mgm -e show11.显示结果:12.Connected to Management Server at: localhost:118613.Cluster Configuration14.---------------------15.[ndbd(NDB)] 2 node(s)16.id=3 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)17.id=4 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)18.19.20.[ndb_mgmd(MGM)] 1 node(s)21.id=1 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6)22.23.24.[mysqld(API)] 1 node(s)25.id=50 (not connected, accepting connect from any host)26.27.④启动MySQL服务引擎28.shell> /home/mysql/mysqlc/bin/mysqld --defaults-file=conf/f &[plain]view plain copy1.shell> cd ../my_cluster/2.①最先启动的是管理节点(ndb_mgmd)3.shell> /home/mysql/mysqlc/bin/ndb_mgmd -f conf/config.ini --initial --configdir=/home/mysql/my_cluster/conf/4.②启动第一个数据节点(ndbd)5.shell> /home/mysql/mysqlc/bin/ndbd -c localhost:11866.③启动第二个数据节点(ndbd)7.shell> /home/mysql/mysqlc/bin/ndbd -c localhost:11868.9.在启动MySQL服务引擎(mysqld)之前,一定要等到所有的数据节点全部启动完毕,然后才能启动MySQL服务引擎。
查看数据节点是否启动完毕的命令语句如下:10.shell> /home/mysql/mysqlc/bin/ndb_mgm -e show11.显示结果:12.Connected to Management Server at: localhost:118613.Cluster Configuration14.---------------------15.[ndbd(NDB)] 2 node(s)16.id=3 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)17.id=4 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)18.19.20.[ndb_mgmd(MGM)] 1 node(s)21.id=1 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6)22.23.24.[mysqld(API)] 1 node(s)25.id=50 (not connected, accepting connect from any host)26.27.④启动MySQL服务引擎28.shell> /home/mysql/mysqlc/bin/mysqld --defaults-file=conf/f &启动成功后的进程如下:[plain]view plaincopy1.mysql 1738 0.1 0.5 575408 5752 ? Ssl 00:58 0:14 /home/mysql/mysqlc/bin/ndb_mgmd -f conf/config.ini --initial --configdir=/home/mysql/my_ cluster/conf/2.mysql 1751 0.0 0.0 101116 660 ? Ss 00:58 0:00 /home/mysql/mysqlc/bin/ndbd -c localhost:11863.mysql 1752 0.3 31.5 1048328 320704 ? Sl 00:58 0:41 /home/mysql/mysqlc/bin/ndbd -c localhost:11864.mysql 1790 0.0 0.0 101116 708 ? Ss 00:58 0:00 /home/mysql/mysqlc/bin/ndbd -c localhost:11865.mysql 1791 0.3 40.9 1048328 417228 ? Sl 00:58 0:38 /home/mysql/mysqlc/bin/ndbd -c localhost:11866.mysql 1835 0.0 5.4 886712 55296 pts/0 Sl 00:59 0:11 /home/mysql/mysqlc/bin/mysqld --defaults-file=conf/f7.mysql 1897 0.0 0.1 198204 2032 pts/1 S+ 01:00 0:00 /home/mysql/mysqlc/bin/mysql -h 127.0.0.1 -P 5000 -u root[plain]view plain copy1.mysql 1738 0.1 0.5 575408 5752 ? Ssl 00:58 0:14 /home/mysql/mysqlc/bin/ndb_mgmd -f conf/config.ini --initial --configdir=/home/mysql/my_ cluster/conf/2.mysql 1751 0.0 0.0 101116 660 ? Ss 00:58 0:00 /home/mysql/mysqlc/bin/ndbd -c localhost:11863.mysql 1752 0.3 31.5 1048328 320704 ? Sl 00:58 0:41 /home/mysql/mysqlc/bin/ndbd -c localhost:11864.mysql 1790 0.0 0.0 101116 708 ? Ss 00:58 0:00 /home/mysql/mysqlc/bin/ndbd -c localhost:11865.mysql 1791 0.3 40.9 1048328 417228 ? Sl 00:58 0:38 /home/mysql/mysqlc/bin/ndbd -c localhost:11866.mysql 1835 0.0 5.4 886712 55296 pts/0 Sl 00:59 0:11 /home/mysql/mysqlc/bin/mysqld --defaults-file=conf/f7.mysql 1897 0.0 0.1 198204 2032 pts/1 S+ 01:00 0:00 /home/mysql/mysqlc/bin/mysql -h 127.0.0.1 -P 5000 -u root6. 测试连接到MySQL服务器,并确认使用MySQL集群(NDB)可以创建表①连接到MySQL 服务器:[plain]view plaincopy1.shell> /home/mysql/mysqlc/bin/mysql -h 127.0.0.1 -P 5000 -u root2.mysql> create database clusterdb;use clusterdb;3.mysql> create table simples (id int not null primary key) engine=ndb;4.mysql> insert into simples values (1),(2),(3),(4);5.mysql> select * from simples;6.+----+7.| id |8.+----+9.| 3 |10.| 1 |11.| 2 |12.| 4 |13.+----+[plain]view plain copy1.shell> /home/mysql/mysqlc/bin/mysql -h 127.0.0.1 -P 5000 -u root2.mysql> create database clusterdb;use clusterdb;3.mysql> create table simples (id int not null primary key) engine=ndb;4.mysql> insert into simples values (1),(2),(3),(4);5.mysql> select * from simples;6.+----+7.| id |8.+----+9.| 3 |10.| 1 |11.| 2 |12.| 4 |13.+----+7. 停止服务MySQL服务必须手动停止,服务停止后,其他集群节点的停止可以使用管理节点(ndb_mgm)来[plain]view plaincopy1.shell> /home/mysql/mysqlc/bin/mysqladmin -u root -h 127.0.0.1 -P 5000 shutdown2.shell> /home/mysql/mysqlc/bin/ndb_mgm -e shutdown[plain]view plain copy1.shell> /home/mysql/mysqlc/bin/mysqladmin -u root -h 127.0.0.1 -P 5000 shutdown2.shell> /home/mysql/mysqlc/bin/ndb_mgm -e shutdown。