看网上很多人说mysql集群不是很稳定,因此这2天做了下mysql的集群,打算配置没有什么问题了,过2天做下相关的性能测试,我的配置环境如下:
操作系统:
Centos5.2
软件包:
mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
数据库管理节点: 192.168.100.151
数据库数据节点: 192.168.100.65,192.168.100.58
数据库sql节点: 192.168.100.65,192.168.100.58
我这里数据节点和sql节点用相同的2台机器承担.
1.管理节点的安装
#groupadd mysql
#useradd mysql -g mysql
#mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz /usr/local/
#cd /usr/local/
#tar zxvf mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
#rm -f mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
#mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23 mysql
#chown -R mysql:mysql mysql
#cd mysql
#scripts/mysql_install_db --user=mysql
2.管理节点的配置
#mkdir /var/lib/mysql-cluster
#cd /var/lib/mysql-cluster
#vi config.ini                //这里需要手动添加如下内容
 
  [ndbd default]
  NoOfReplicas=2
  DataMemory=80M
  IndexMemory=18M                  //这里有很多参数,大家可以自己找下相关资料
  [ndb_mgmd]
  Id=1
  Hostname=10.10.1.151             //管理节点IP
  datadir=/usr/local/mysql/logs
  [ndbd]
  Id=2
  Hostname=10.10.1.65              //数据节点IP  
  datadir=/usr/local/mysql/data/   //数据节点的数据目录,这里要与数据节点的配置文件my.cnf
                                     的数据指定相同
  [ndbd]
  Id=3
  Hostname=10.10.1.58            //数据节点IP   
  datadir=/usr/local/mysql/data/
  [MYSQLD]
  [MYSQLD]
3.安装和配置数据节点
 
  这里2台机器数据节点安装是相同的.
#groupadd mysql

#useradd mysql -g mysql
#mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz /usr/local/
#cd /usr/local/
#tar zxvf mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
#rm -f mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
#mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23 mysql
#chown -R mysql:mysql mysql
#cd mysql
#scripts/mysql_install_db --user=mysql
#cp support-files/my-medium.cnf /etc/my.cnf
#cp support-files/mysql.server /etc/init.d/mysqld
#vi /etc/my.cnf         //这里需要手动添加如下的内容
 
  datadir=/usr/local/mysql/data/       //这里要与管理节点的config.ini相同
  ndbcluster
  ndb-connectstring=10.10.1.151
  [ndbd]
  connect-string=10.10.1.151
  [mysql_cluster]
  ndb-connectstring=10.10.1.151
  [ndb_mgm]
  connect-string=192.168.1.151
  [ndb_mgmd]
  config-file=/var/lib/mysql-cluster/config.ini  //这里要指定管理节点配置文件路径
 
4.启动相关服务
 
  在管理节点启动相关服务:
#/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
#netstat -lntpu
tcp        0      0 0.0.0.0:1186            0.0.0.0:*                
LISTEN   22907/ndb_mgmd
看到1186端口开放了说明启动是正常的.
在数据节点启动相关服务:
#/usr/local/mysql/bin/ndbd --initial
#netstat -lntpu
  tcp        0      0 10.10.1.65:32975            0.0.0.0:*                    LISTEN      1901/ndbd                 
tcp        0      0 10.10.1.65:32976            0.0.0.0:*                   LISTEN      1901/ndbd          
tcp        0      0 10.10.1.65:32977            0.0.0.0:*                   LISTEN      1901/ndbd  
#service mysqld start
#netstat -lntpu
tcp        0      0 :::3306                     :::*                        LISTEN      2258/mysqld 

可以看到相关的ndbd服务以及mysql已经启动ok了.
5.功能测试
到管理节点查看下相关服务状态
# ndb_mgm
 ndb_mgm> show
 Connected to Management Server at: localhost:1186
 Cluster Configuration
 ---------------------
 [ndbd(NDB)]     2 node(s)
 id=2    @10.10.1.65  (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)
 id=3    @10.10.1.58  (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
 id=1    @10.10.1.151  (mysql-5.1.37 ndb-7.0.8)
[mysqld(API)]   2 node(s)
 id=4    @10.10.1.65  (mysql-5.1.37 ndb-7.0.8)
 id=5    @10.10.1.58  (mysql-5.1.37 ndb-7.0.8)
可以看到这里的数据节点、管理节点、sql节点都是正常的.
现在我们在其中一个数据节点上进行相关数据库的创建,然后到另外一个数据节点上看看数据是否同步
# /usr/local/mysql/bin/mysql -u root -p
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| ndb_2_fs           |
| test               |
+--------------------+
mysql> create database aa;
mysql> use aa
mysql> CREATE TABLE ctest2 (i INT) ENGINE=NDB; //这里必须指定数据库表的引擎为NDB,否则同步失败
mysql> INSERT INTO ctest2 () VALUES (1);
mysql> SELECT * FROM ctest2;
+------+
| i    |
+------+
|    1 |
+------+
现在到另外一个数据节点查看下aa数据库是否同步过来了.
#/usr/local/mysql/bin/mysql -u root -p
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| aa                 |
| bb                 |
| mysql              |
| ndb_3_fs           |
| test               |
+--------------------+
mysql> use aa
mysql> select * from ctest2;
+------+
| i    |
+------+
|    1 |
+------+
从上面可以看到数据已经同步了,mysql集群环境已经搭建完成.
6.破坏性测试
大家在上面可以看到10.10.1.65作为主的数据节点,我现在把10.10.1.65这台机器关闭,看下有什么结果
ndb_mgm> show
  Cluster Configuration
  ---------------------
  [ndbd(NDB)]     2 node(s)
  id=2 (not connected, accepting connect from 10.10.1.65)
  id=3    @10.10.1.58  (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)
[ndb_mgmd(MGM)] 1 node(s)
  id=1    @10.10.1.151  (mysql-5.1.37 ndb-7.0.8)
[mysqld(API)]   2 node(s)
  id=4 (not connected, accepting connect from any host)
  id=5    @10.10.1.58  (mysql-5.1.37 ndb-7.0.8)
从上面可以发现现在10.10.1.65这台机器的数据节点和sql节点已经连接不了,10.10.1.58成为了主数据节点,我们现在在10.10.1.58数据节点上创建一个表,然后恢复10.10.1.65的数据节点,看下它是否把数据同步过来了.
先在10.10.1.58数据节点做如下操作:
mysql> create table ctest3(id int(11)) engine=NDB;
  mysql> show tables;
+--------------+
| Tables_in_aa |
+--------------+
| ctest2       |
| ctest3       |
+--------------+
mysql> insert into ctest3 values(1);
mysql> select * from ctest3;
+------+
| id   |
+------+
|    1 |
+------+
然后我们恢复10.10.1.65数据节点,查看下ctest3数据是否同步过来了.
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| aa                 |
| bb                 |
| mysql              |
| ndb_2_fs           |
| test               |
+--------------------+
mysql> use aa
mysql> show tables;
+--------------+
| Tables_in_aa |
+--------------+
| ctest        |
| ctest2       |
| ctest3       |
+--------------+
mysql> select * from ctest3;
+------+
| id   |
+------+
|    1 |
+------+
可以看到10.10.1.65数据节点已经把10.10.1.58数据节点的数据同步过来了,说明mysql集群是没有问题的了.随后做下mysql性能相关的测试.

转载于:https://blog.51cto.com/wiliiwin/259801

mysql集群安装配置相关推荐

  1. mysql cluster java_Java学习笔记(十):MySQL集群安装配置

    需要安装软件(所有的节点都必须安装,不需要安装mysql mysql-server,mysql-cluster有自带的): mysql-cluster-gpl-7.3.7-linux-glibc2.5 ...

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

    一.说明 本文参考:http://www.cnblogs.com/jackluo/archive/2013/01/19/2868152.html 1.准备服务器 计划建立有5个节点的MySQL CLu ...

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

    一.准备 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以只用2台,我就是一台本机,一台虚拟机搭建了有5个节点的MySQL ...

  4. linux mysql 集群安装配置_linux下mysql集群的安装

    3台redhat服务器: SQL节点(mysqld): 192.168.1.77;192.168.1.78 数据节点(ndbd): 192.168.1.77;192.168.1.78 管理节点(ndb ...

  5. mysql集群安装(centos)

    永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! mysql集群安装(centos) mysql cluster : 1. 基于NDB Cluster 的分布式数据库系统 2. mysq ...

  6. mysql集群的配置

    最近在 学习MYSQL集群的配置,首先要了解什么集群,为什么要使用集群,以及安装集群的软件是什么和集群中的进程有哪些. 1.什么是集群? 集群是一组服务器提供相同的服务. 2.为什么要使用集群? 解决 ...

  7. redis cluster 集群 安装 配置 详解

    redis cluster 集群 安装 配置 详解 张映 发表于 2015-05-01 分类目录: nosql 标签:cluster, redis, 安装, 配置, 集群 Redis 集群是一个提供在 ...

  8. RabbitMQ集群安装配置+HAproxy+Keepalived高可用

    RabbitMQ集群安装配置+HAproxy+Keepalived高可用 转自:https://www.linuxidc.com/Linux/2016-10/136492.htm rabbitmq 集 ...

  9. 02.Kubernetes 和 KubeSphere 集群安装配置持久化存储(nfs)并通过StatefulSet动态为pod生成pv挂载

    Kubernetes 和 KubeSphere 集群安装配置持久化存储(nfs)并通过StatefulSet动态为pod生成pv挂载 简介 1. 安装配置前置环境 1.1 安装nfs文件系统 1.1. ...

最新文章

  1. Java Review - 使用Timer时需要注意的事情
  2. Angular 2/Ionic 2 @input和@output理解
  3. 如何配置x225/x235/x335/x345的LSI SCSI卡实现RAID-1功能
  4. Lolipa魔方财务主题-虚拟主机源码
  5. Web编码乱码解决原理方案
  6. python需要的开发特点_Python编程语言特征
  7. oracle mysql增量迁移_深入浅出XTTS:Oracle数据库迁移升级利器
  8. 里面的自带的字典在哪里_自带话放的声卡“秘密”
  9. merge语句_SQL Server MERGE语句概述和示例
  10. 为什么程序员应该避免间接代码?
  11. matlab 语法_MATLAB中的语法
  12. 搭配-最全的配色方案和色彩搭配
  13. 软件工程(二)——过程模型
  14. 数学建模 —— 规划模型
  15. SpringBoot 轻松搞定数据验证 (三)
  16. python列表按照字母排序_Python:按字母顺序对列表进行排序/分组
  17. javascript开发HTML5游戏--斗地主(单机模式part3)
  18. new open SQL ABAP语法错误,逗号和转义符变量 when escaped, all host variables must be escaped using@
  19. 【论文阅读】Blur Calibration for Depth from Defocus
  20. Node 引入 ESM 新方案

热门文章

  1. 调整分区个数_2T移动硬盘分区办法
  2. Jupyter中出现ModuleNotFoundError: No module named ‘matplotlib‘的解决办法
  3. 【 笔记 】定位算法性能分析
  4. 【 MATLAB 】DFT的性质讨论(二)序列的循环移位及其 MATLAB 实现(时域方法)
  5. Virtex-6中的BRAM(Block RAM)模块、DSP 模块XtremeDSP
  6. python 2/3 joblib.dump() 和 joblib.load()
  7. 夏夏的php开发笔记开写啦
  8. 树的基本操作的非递归实现
  9. 详细解析用C#写的小游戏《彩色连珠》(附源代码)
  10. Forefront Security For Exchange文件传送限制测试