mysql集群安装配置

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
看网上很多人说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性能相关的测试.


本文转自wiliiwin 51CTO博客,原文链接:http://blog.51cto.com/wiliiwin/259801
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 SQL 关系型数据库
创建并配置RDS实例
在阿里云上创建RDS实例涉及登录控制台、进入RDS管理页面、创建实例、选择数据库引擎和版本、配置实例规格与存储、设定网络与安全组、设置实例信息、确认订单并支付,最后初始化数据库。操作步骤可能因界面更新或数据库引擎不同略有差异。
19 1
|
1月前
|
关系型数据库 MySQL 开发工具
MySQL5.7主从配置(Docker)
MySQL5.7主从配置(Docker)
728 0
|
2月前
|
存储 监控 关系型数据库
rds迁移前准备资源评估与配置
rds迁移前准备资源评估与配置
37 5
|
1月前
|
SQL 存储 运维
MySQL高可用性:主从复制和集群
MySQL高可用性:主从复制和集群
36 0
|
16天前
|
SQL 缓存 关系型数据库
mysql性能优化-慢查询分析、优化索引和配置
mysql性能优化-慢查询分析、优化索引和配置
82 1
|
21天前
|
缓存 关系型数据库 MySQL
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
|
1月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
99 1
|
2天前
|
SQL 存储 关系型数据库
MySQL Cluster集群安装及使用
MySQL Cluster集群安装及使用
|
1月前
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
15 1
|
1月前
|
弹性计算 关系型数据库 MySQL
rds子网配置
在阿里云中配置RDS子网涉及五个关键步骤:1) 创建或选择VPC作为私有网络环境;2) 在VPC内创建子网并确保IP地址不重叠;3) 关联路由表和安全组以控制流量及访问权限;4) 创建RDS实例时指定VPC和子网;5) 确保ECS实例与RDS在同一VPC或配置相应跨VPC访问,并调整安全组规则。这样可保障RDS与其他资源的通信及网络性能。
19 6