zoukankan      html  css  js  c++  java
  • mysql集群安装配置

    看网上很多人说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性能相关的测试.
  • 相关阅读:
    TweenAlpha的使用
    NGUI Slider
    Unity 在Resources加载类型的文件
    NGUI-UIProgressBar
    unity NGUI Grid
    我靠 什么鬼
    unity判断平台
    unity和Android交互
    unity导出的Android工程导入eclipse时报错
    实现播放完Animate后执行一个方法
  • 原文地址:https://www.cnblogs.com/GmrBrian/p/2871473.html
Copyright © 2011-2022 走看看