`
SkgHimT
  • 浏览: 1699 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

mysql簇集群配置安装相关

阅读更多

配置mysql簇集群的个人心得。

 

 

安装准备:
1.所需软件。
  管理节点:
      MySQL-Cluster-gpl-management-7.1.9a-1.rhel5.i386.rpm
      MySQL-Cluster-gpl-tools-7.1.9a-1.rhel4.i386.rpm
  sql节点:
      MySQL-Cluster-gpl-server-7.1.9a-1.rhel5.i386.rpm
      MySQL-Cluster-gpl-client-7.1.9a-1.rhel5.i386.rpm
  存储节点:
      MySQL-Cluster-gpl-storage-7.1.9a-1.rhel4.i386.rpm
2.前提条件
  关闭所有集群机器的防火墙
  在所有mysql集群的机器中配置/etc/hosts文件将所有机器的ip和机器名称写进去。并将所有的集群机器加到同一个组群中。
  添加到mysql组中: groupadd mysql
  添加用户mysql: useradd -g mysql mysql



一 安装和配置管理节点
 1. 安装准备
       创建文件夹:mkdir /var/lib/mysql/data表示存储节点文件夹
                  mkdir /var/lib/mysql-cluster表示管理节点文件夹
      
       赋予权限:chmod -R 1777 /var/lib/mysql
                             chmod -R 1777 /var/lib/mysql-cluster
 2. 安装管理节点软件
    rpm -ivh MySQL-Cluster-gpl-management-7.1.9a-1.rhel5.i386.rpm
       rpm -ivh MySQL-Cluster-gpl-tools-7.1.9a-1.rhel4.i386.rpm

 3. 配置管理节点
       在mysql目录下新建mysql-cluster文件夹,进入到mysql-cluster,新建config.ini
      
    [NDBD DEFAULT]
       NoOfReplicas=2       #备份,副本,这样的话2台数据节点的数据就会同步
       DataMemory=200M
       IndexMemory=100M

       [TCP DEFAULT]
       portnumber=2202 连接端口号,与存储节点和sql节点对应

       [NDB_MGMD]   #管理节点
       id=11
       hostname=管理节点的ip地址
       datadir=/var/lib/mysql-cluster
 
       [NDBD]    #数据节点
       id=21
       hostname=对应数据节点的IP地址
       datadir=/var/lib/mysql/data  
       [NDBD]   #数据节点
       id=22
       hostname=对应数据节点的IP地址
       datadir=/var/lib/mysql/data
      
       可以有多个ndbd几点,只需要在此处添加[NDBD]注册即可

       [MySQLD]   #sql节点
       id=31
       hostname=对应sql节点的ip地址

       [MySQLD]    #sql节点
       id=32
       hostname=对应sql节点的ip地址

    可以有多个ndbd几点,只需要在此处添加[MySQLD]注册即可
 
  4. 启动管理节点
       ndb_mgmd -f /var/lib/mysql-cluster/config.ini

  5. 管理工具
       使用命令ndb_mgm进入管理控制台,输入show可以显示集群设备的连接信息。

二 安装配置ndbd节点

  1. 安装软件
     rpm -ivh MySQL-Cluster-gpl-storage-7.1.9a-1.rhel4.i386.rpm
 
  2. 配置ndbd节点
     在/ect/my.cnf文件中添加信息
     vi /ect/my.cnf
    
     [mysqld]
     max_connections = 100  最大连接数
     slow_query_log = /var/lib/mysql-cluster/slow_query.log
     long_query_time = 1
     datadir = /var/lib/mysql-cluster
     ndbcluster
     ndb-connectstring="nodeid=id,ip" 其中id为在管理节点中配置的本存储节点ip对应的id,后面的ip地址为管理节点的ip地址

     [mysql_cluster]
     ndb-connectstring="nodeid=id,ip" 其中id为在管理节点中配置的本存储节点ip对应的id,后面的ip地址为管理节点的ip地址

  3. 启动ndbd节点
     第一次启动使用命令 ndbd -initial
     以后使用ndbd即可

三 安装配置sql节点

   1. 安装软件
      rpm -ivh MySQL-Cluster-gpl-server-7.1.9a-1.rhel5.i386.rpm
      rpm -ovh MySQL-Cluster-gpl-client-7.1.9a-1.rhel5.i386.rpm
   2. 配置sql节点
      运行下面命令:
      cp my-medium.ini /etc/my.cnf  使用 find / -name medium.cnf  查找到medium.cnf文件的位置,然后使用复制
     
      1>my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
      2>my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内
         存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
      3>my-large.ini是为专用于一个SQL数据库的计算机而设计的。由于它可以为该数据库使用多达512MB的内存,所以在这种类型的系统上将需要至少
         1GB  的RAM,以便它能够同时处理操作系统与数据库应用程序。
      4>my-huge.ini是为企业中的数据库而设计的。这样的数据库要求专用服务器和1GB或1GB以上的RAM。
     
      vi /etc/my.cnf
      在my.cnf文件的后面添加
       [MYSQLD]
    basedir = /usr
    datadir  = /usr/local/mysql/data/
    user  = mysql
    socket = /tmp/mysql.sock
    ndbcluster
    ndb-connectstring=="nodeid=id,ip"  其中id为在管理节点中配置的本存储节点ip对应的id,后面的ip地址为管理节点的ip地址
    [MYSQL_CLUSTER]
    ndb-connectstring=="nodeid=id,ip"  其中id为在管理节点中配置的本存储节点ip对应的id,后面的ip地址为管理节点的ip地址
   3.赋予权限
      创建 /usr/local/mysql/data 目录文件夹
      chomd 775 /usr/local/mysql/data
      赋予数据库存取权限
      mysql_install_db /usr/local/mysql/data  使用find / -name mysql_install_db 查找到mysql_install_db 然后使用此命令
      mysql_install_db  重新初始化mysql
   4.启动mysqld
      使用命令 mysqld_safe

四 测试集群
  
  1.管理节点中输入ndb_mgm进入管理控制台,输入show,在显示的信息如下图所示,即表示所有连接正常。
   
    ________________________________________________________________________
   | [ndbd(NDB)]     2 node(s)                                                                                                      
   | id=21   @192.168.41.52  (mysql-5.1.51 ndb-7.1.9, Nodegroup: 0, Master)                          
   | id=22   @192.168.41.42  (mysql-5.1.51 ndb-7.1.10, Nodegroup: 0)                                     
   |                                                                                                                                               
   | [ndb_mgmd(MGM)] 1 node(s)                                                                                                
   | id=11   @192.168.41.240  (mysql-5.1.51 ndb-7.1.10)                                                           
   |                                                                                                                                               
   | [mysqld(API)]   2 node(s)                                                                                                      
   | id=31   @192.168.41.51  (mysql-5.1.51 ndb-7.1.9)                                                              
   | id=32   @192.168.41.55  (mysql-5.1.51 ndb-7.1.9)                                                              
   |________________________________________________________________________

  2.在sql1节点中登录mysql -u root
    然后创建一个数据库 sql1test, 进入sql1test数据库创建一张表test,然后在里面添加几条数据。

  3.在另一个sql节点中登录mysql -u root
    查看数据库,并找到sql1test数据库,进入实用select语句查询test表中的记录,显示的记录正常。

  4.断开一个ndbd数据存储节点
    在sql1节点中查询test表中的记录正常。
 
  上面描述的信息正常则集群已经搭起来了。

五 遇到的问题
  
  1.sql节点启动失败,提示不存在 /var/lib/mysql/mysql.sock文件。
    打开/etc/my.cnf修改[client]下的socket值,使得此值与[MYSQLD]下的socket值相同。

  2.错误信息无法找到errmsg.sys文件。
    修改[MYSQLD]下的basedir值,使用find / -name errmsg.sys查找到此文件,然后修改basedir值使其能正确的指到errmsg.sys文件。

  3.使用mysql命令进入数据库控制台中,无法实现数据库的集群模式。
    使用mysql -u root 登录到数据库控制台即可。

  4.创建的表无法在另一个sql节点的mysql控制台中查看到。
    使用命令 create table [table name] () engine=ndbcluster;创建数据库表即可实现

分享到:
评论

相关推荐

    Mysql簇集群配置

    综上所述,Mysql簇集群配置涉及软件包准备、环境配置、目录权限设置、软件安装、集群配置、服务启动与监控等多个环节,每一个步骤都需精心操作,以确保集群的稳定运行和高效性能。通过对以上流程的深入了解和实践,...

    MySQL簇

    MySQL簇,也称为MySQL Cluster,是一种高可用性、高性能的数据库解决方案,主要设计用于处理大量数据并提供实时访问。在MySQL Cluster中,数据被分散在多个节点上,以实现负载均衡和容错能力,确保即使在单个节点...

    MySQL最重要的基础知识详解 中文版

    - **配置NDB Cluster**:NDB Cluster是MySQL簇的主要组成部分。 - **启动集群**:启动集群中的各个节点。 #### 第10章 用源代码搭建LAMP环境 ##### 10.1 构建安装环境 - **系统准备**:选择合适的Linux发行版。 -...

    mysql簇应用

    管理节点负责集群的配置和监控,数据节点存储和处理数据,SQL节点接收SQL查询并处理结果。 3. **性能优化** - **数据分区**:通过合理的数据分区策略,可以提高查询效率,减少跨节点通信。 - **内存配置**:优化...

    深入浅出Mysql优化性能提升.txt

    25-MySQL主从集群配置.wmv 26-Binlog-Format的区别.wmv 27-主主复制.wmv 28-主主复制时的主键冲突解决.wmv 29-被动主主复制.wmv 30-MySQL Proxy完成负载均衡与读写分离.wmv 31-Partition分区.wmv 32-事务讲解.wmv

    4.抽取mysql数据到hbase表中.docx

    - 需要安装好Hadoop环境,并且确保Hadoop集群可以正常运行。 - 下载并配置HBase,包括配置`hbase-site.xml`等配置文件,以适应Hadoop环境。 - 启动HBase集群,包括HMaster和RegionServer等组件。 2. **使用HBase...

    Understanding MySQL Internals.rar

    10. **扩展性与高可用性**:MySQL的集群、复制、分区等技术,以及如何设计和实现高可用和可扩展的数据库解决方案。 通过阅读《Understanding MySQL Internals》这本书,读者可以深入了解MySQL的内部工作原理,从而...

    聊聊高并发高可用那些事(Kafka、Redis、MySQL)

    【MySQL篇】 MySQL是世界上最流行的开源关系型数据库管理系统之一,其设计目标是处理大量数据,同时提供高并发和高可用性。以下是一些关键知识点: 1. **SQL语句执行流程**:当提交一个SQL语句时,MySQL会经历解析...

    MySQL_Simp.rar_分布式计算

    通过学习和掌握这些知识点,开发者可以有效地利用MySQL_Simp.CHM文档中的信息,在分布式计算环境中构建和管理高可用的MySQL集群,以处理大规模的并发请求和大数据量。这不仅提升了系统的处理能力,还增强了整体的...

    大数据运维技术第7章 HBase组件安装与配置课件.pptx

    【大数据运维技术——HBase组件安装与配置】 HBase,全称为Hadoop Database,是一种基于Hadoop生态系统的分布式、高性能、非关系型数据库,属于NoSQL数据库家族的一员。HBase的发展始于2007年,由Powerset公司创建...

    AWS:使用AWS-EC2,MySQL,Redis缓存,执行的集群,Kmeans

    在本项目中,我们主要探讨了如何利用Amazon Web Services(AWS)中的几个核心服务,包括Amazon Elastic Compute Cloud(EC2)、MySQL数据库服务以及Redis缓存,来构建一个高性能的集群环境,并实施K-means聚类算法。...

    MySQL数据库三种常用存储引擎特性对比

    6. 集群设计时,SQL节点和数据节点的配置应考虑计算性能和网络带宽。 除了上述三种,MySQL还有Memory、Merge、CSV、Archive等其他存储引擎,它们各有特色,例如Memory存储引擎的所有数据都在内存中,适用于临时表;...

    redis学习教案

    主要应用在社交网络中,优势是利用图结构相关算法,劣势是需要对整个图做计算得出结果,不容易做分布式的集群方案。 ### Redis介绍 Redis是一种开源的高性能键值对(key-value)数据库,由C语言编写。Redis支持多种...

    hbase0基础入门教程

    与传统的关系型数据库管理系统(RDBMS)如MySQL、Oracle、DB2和SQL Server等不同,HBase是一个NoSQL数据库。它采用的是列式存储而非行式存储,没有固定的表结构定义,支持的数据类型为字节数组(byte[]),并且对...

    Innodb存储引擎浅析—事务系统

    - **重要的配置参数**:`key_buffer`用于缓存MyISAM索引块。 - **状态参数**: - `key_read_requests`:表示从缓存中读取索引块的请求次数; - `key_read`:表示实际从磁盘读取索引块的次数。 - **表的存储结构**...

    redis入门与实践

    需要注意的是,Redis集群的配置较为复杂,需要考虑分片、故障转移等因素。 #### 八、Java客户端Jedis Jedis是一个用于连接Redis集群的Java客户端库,它提供了丰富的API来操作Redis中的数据。通过Jedis,开发者可以...

    factorish:使任何应用以12种工厂行为进行操作

    它的框架是基于对工作由opdemand乡亲我适合我的项目旨在建立其了自动的集群MySQL服务器,然后慢慢演变成这样。 我提供了一个小示例hello world python应用程序,该应用程序仅读取配置文件并在其中打印出字段的值。...

    idea本地调试leetcode-mysc:java系列

    idea本地调试leetcode my-sc 目录结构 ...介绍zookeeper的命名服务,配置管理,集群管理,分布式锁,队列管理 介绍redis的原理,本地搭建一个redis服务,实现java的存入和取出 servlet 新特性 开启远程调试

    IT互联网名企经典面试题汇总:Java篇 (2).docx

    7. **聚簇索引与非聚簇索引**:聚簇索引决定了数据的物理存储顺序,而非聚簇索引不决定数据的物理顺序,通常用于快速查找。 8. **Spring的IOC和AOP**:依赖注入(IOC)简化了对象之间的关系管理,面向切面编程(AOP...

Global site tag (gtag.js) - Google Analytics