zoukankan      html  css  js  c++  java
  • mysql cluster (mysql 集群)安装配置方案(转)

    一、准备

    1、准备服务器

    计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以只用2台,我就是一台本机,一台虚拟机搭建了有5个节点的MySQL CLuster体系,将一个SQL节点一个数据节点一个SQL节点放在了一台服务器上(192.168.1.252),将另一个SQL节点和一个数据节点放在了另外一台服务器上(192.168.1.52)。

    节点配置说明
    节点 对应的IP和端口
    管理节点(1个) 192.168.1.252
    SQL节点 (2个) 192.168.1.252:3331
    192.168.1.52:3331
    数据节点 (2个) 192.168.1.252
    192.168.1.52

    2、准备软件包

    现在的mysql提供了一个专门作集群的安装包,这样就不用一个个的下载所需要的工具了。我在网上找到了最新的而且下载比较快的资源,第一步先是下载,有200M左右。

    cd /var/tmp

    wget http://mysql.ntu.edu.tw/Downloads/MySQL-Cluster-7.1/  

    mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz

    二、安装

    1、数据节点和SQL节点

    第一步 添加mysql用户和组,这是必需的。

    groupadd mysql

    useradd -g mysql mysql

    第二步 开始安装,下载的版本是免编译的,复制过来就可以用了。

    cd /var/tmp

    tar -C /usr/local-zxvf mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz

    cd /usr/local

    mv mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz mysql

    第三步 在mysql修改目录权限,这也是必需的,不然第四步会报错的。

    cd mysql

    chown -R root .

    chown -R mysql data

    chgrp -R mysql .

    第四步 安装初始的数据库表

    scripts/mysql_install_db --user=mysql

    第五步 设置mysql服务为开机自启动

    cp support-files/mysql.server /etc/rc.d/init.d/mysqld

    chmod +x /etc/rc.d/init.d/mysqld

    chkconfig --add mysqld

    第六步 启动mysql服务,如果报错请参考

    service mysqld start

    这六步,在252和52服务器上都执行一次,数据节点和SQL节点就算安装好了。

    2、管理节点

    管理节点的安装更简单,只要在252服务器上复制些文件出来就行了,虽然只有一步,便这一步在目前环境下(管理节点和SQL节点在同一台服务器上)也不是必需的。

    cd mysql

    cp bin/ndb_mgm*/usr/local/bin

    cd /usr/local/bin

    chmod +x ndb_mgm*

    管理节点只要ndb_mgm和ndb_mgmd两个文件和一个配置文件即可,因此把这三个文件复制到那里,那里就是管理节点了。ndb_mgmd是mysql cluster管理服务器,ndb_mgm是客户端管理工具,等一下会用到它们的。到目前为止两个SQL节点两个数据节点和一个管理节点都安装完成了,但是还不能工作,得进行配置,把这几个节点联系在一起协同工作。

    三、配置

    1、数据节点和SQL节点

    mysql服务启动时会默认加载/etc/my.cnf作为其配置文件,要将一个mysql服务器配置成一个数据节点和SQL节点也非常的简单,这是配置前的my.cnf的内容:

    [client]

    port    =3306

    socket  =/tmp/mysql.sock

    [mysqld]

    basedir         =/usr/local/mysql/

    datadir         =/usr/local/mysql/data

    user            = mysql

    log-error       =/var/lib/mysql/mysqld.err

    只要在内容结尾加上4行就将这个mysql服务器变成了一个数据节点和SQL节点。

    ndbcluster   #运行NDB存储引擎

    #指定管理节点  以上两行声明其为SQL节点

    ndb-connectstring=192.168.1.252  

    [mysql_cluster]

    #指定管理节点  以上两行声明其为数据节点

    ndb-connectstring=192.168.1.252  

    注意两台服务器都得这样配置。

    2、管理节点

    管理节点的配置复杂一点,在管理服务器252的/var/lib/mysql-cluster/目录中创建config.ini文件。

    cd /var/lib

    mkdir mysql-cluster

    cd mysql-cluster

    vim config.ini

    在config.ini文件中添加以下内容:

    [NDBD DEFAULT]

    NoOfReplicas=1    #每个数据节点的镜像数量

    DataMemory=500M   #每个数据节点中给数据分配的内存

    IndexMemory=300M  #每个数据节点中给索引分配的内存

    [TCP DEFAULT]

    portnumber=2202   #数据节点的默认连接端口

    [NDB_MGMD]        #配置管理节点

    hostname=192.168.1.252

    datadir=/var/lib/mysql-cluster/  #管理节点数据(日志)目录

    [NDBD]            #数据节点配置

    hostname=192.168.1.252

    datadir=/usr/local/mysql/data/   #数据节点目录

    [NDBD]

    hostname=192.168.1.52

    datadir=/usr/local/mysql/data/

    [MYSQLD]   #SQL节点目录

    hostname=192.168.1.252

    [MYSQLD]

    hostname=192.168.1.52

    [NDBD DEFAULT]:表示每个数据节点的默认配置在每个节点的[NDBD]中不用再写这些选项,只能有一个。
    [NDB_MGMD]:表示管理节点的配置,只有一个。
    [NDBD]:表示每个数据节点的配置,可以有多个。
    [MYSQLD]:表示SQL节点的配置,可以有多个,分别写上不同SQL节点的IP地址,也可以什么都不写,只保留一个空节点,表示任意一个IP地址都可以进行访问,此节点的个数表明了可以用来连接数据节点的SQL节点总数。

    四、启动

    1、管理节点

    mysql cluster 需要各个节点都 进行启动后才可以工作,节点的启动顺序为管理节点->数据节点->SQL节点。首先启动管理节点

    cd /usr/local/bin

    ./ndb_mgmd -f /var/lib/mysql-cluster/config.ini

    命令行中的ndb_mgmd是mysql cluster的管理服务器,后面的-f表示后面的参数是启动的参数配置文件。如果在启动后过了几天又添加了一个数据节点,这时修改了配置文件启动时就必须加上--initial参数,不然添加的节点不会作用在mysql cluster中。

    ./ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial

    启动时可能会报个WARNING,如WARNING  -- at line 7: [TCP] portnumber is deprecated,这个不用管。可以正常工作的。

    2、数据节点

    安装后第一次启动数据节点时要加上--initial参数,其它时候不要加,除非是在备份、恢复或配置变化后重启时。

    cd mysql/bin/ndbd --initial 

    如果显示以下信息说明启动完成:

    2010-12-31 12:48:03 [ndbd] INFO     -- Angel connected to '192.168.1.252:1186'
    2010-12-31 12:48:03 [ndbd] INFO     -- Angel allocated nodeid: 3

    3、SQL节点

    service mysqld start

    4、客户端管理

    cd /usr/local/bin

    ./ndb_mgm

    这时就进入到客户端,可以对mysql cluster进行各项操作,进入后会有ndb_mgm > 提示符出现,首先来查看各节点的连接情况,在ndb_mgm> 提示符下输入show:

    ndb_mgm> show

    ClusterConfiguration

    ---------------------

    [ndbd(NDB)]     2 node(s)

    id=2    @192.168.1.252  (mysql-5.1.51 ndb-7.1.9,Nodegroup:0,Master)

    id=3    @192.168.1.52  (mysql-5.1.51 ndb-7.1.9,Nodegroup:1)

    [ndb_mgmd(MGM)]1 node(s)

    id=1    @192.168.1.252  (mysql-5.1.51 ndb-7.1.9)

    [mysqld(API)]   2 node(s)

    id=4    @192.168.1.252  (mysql-5.1.51 ndb-7.1.9)

    id=5    @192.168.1.52  (mysql-5.1.51 ndb-7.1.9)

    可以看到各个节点已经连接上了,至此,mysql cluster配置完成。

    五、关闭

    mysql cluster的关闭也很简单,只需在ndb_mgm> 提示符下输入 shutdown即可,这时会显示各节点的关闭信息,再输入exit即可退出ndb_mgm管理,回到shell中。虽然mysql cluster 关闭了,但是SQL节点的mysql服务并不会停止的。接下来就可以做各种试验了。

  • 相关阅读:
    解决content-type为"application/json"的post过来的数据在php端接受不到的问题
    webshell导致项目崩溃
    mysql启动报错 mysql InnoDB: Error: could not open single-table tablespace file
    php性能优化
    post表单翻页保存搜索条件
    PHP7 MongDB 安装与使用
    Mac下编译Thrift的时候Python2.7会报错 site-packages': Operation not permitted
    苹果系统通过brew安装sshpass
    volatile关键字深入理解
    java语言中application异常退出和线程异常崩溃的捕获方法,并且在捕获的钩子方法中进行异常处理
  • 原文地址:https://www.cnblogs.com/sandea/p/5097185.html
Copyright © 2011-2022 走看看