MYSQL CLUSTER 7.3.5 安装手记

  1. 安装环境

    OS: Oracle Linux 6.5 x64

    Server 1: SQL节点和存储节点(NDBD节点) , 管理节点

    IP : 10.21.2.250

    Server 1: SQL节点和存储节点(NDBD节点)

    IP : 10.21.2.251

  2. 准备工作

    iptables -F 关闭 firewall 或者设定开启 1186 3306

    #mysql

    /sbin/iptables -A INPUT -s 10.21.0.0/22 -p tcp --dport 1186 -j ACCEPT

    /sbin/iptables -A INPUT -s 10.21.0.0/22 -p tcp --dport 3306 -j ACCEPT

    /sbin/iptables -A INPUT -s 127.0.0.1/22 -p tcp --dport 1186 -j ACCEPT

    /sbin/iptables -A INPUT -s 127.0.0.1/22 -p tcp --dport 3306 -j ACCEPT
    #
    环境准备

    移除 mysql

    rpm -qa | grep mysql*

    对于无法顺利移除的套件,可按照如下的命令格式予以删除:
    rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64

    #建立帐号

    groupadd mysql
    useradd mysql -g mysql
    http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz
    tar xvf mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz
    mv mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64 /usr/local/mysql
    cd /usr/local/mysql
    ./scripts/mysql_install_db --user=mysql
    chown -R mysql data
    cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

  3. SQL节点和存储节点(NDBD节点)安装

    (两台主机都要装)

    vi /etc/my.cnf

    [mysqld]

    basedir = /usr/local/mysql/

    datadir = /usr/local/mysql/data

    user = mysql

    port = 3306

    socket = /tmp/mysql.sock

    ndbcluster

    ndb-connectstring=10.21.2.250

    [mysql_cluster]

    ndb-connectstring=10.21.2.250

  4. 安装和配置管理节点

    (两台主机都要装但只要启动一台即可)

    mkdir /usr/local/mysql/mysql-cluster

    mkdir /var/lib/mysql-cluster/
    vi /var/lib/mysql-cluster/config.ini

    chown -R mysql.mysql /usr/local/mysql/

     

    [ndbd default]

    NoOfReplicas= 2

    [MYSQLD DEFAULT]

    [ndb_mgmd default]

    DataDir= /usr/local/mysql/mysql-cluster

    [ndb_mgmd]

    HostName= 10.21.2.250

    [ndbd]

    HostName= 10.21.2.250

    DataDir= /usr/local/mysql/mysql-cluster

    [ndbd]

    HostName= 10.21.2.251

    DataDir= /usr/local/mysql/mysql-cluster

    [mysqld]

    HostName= 10.21.2.250

    [mysqld]

    HostName= 10.21.2.251

  5. 启动MySQL Cluster管理节点

    (主机 10.21.2.50 即可)

    /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

  6. 查看管理结点

    /usr/local/mysql/bin/ndb_mgm -e show

    Cluster Configuration
    ---------------------
    [ndbd(NDB)]     2 node(s)
    id=2 (not connected, accepting connect from 10.21.2.250)
    id=3 (not connected, accepting connect from 10.21.2.251)

    [ndb_mgmd(MGM)] 1 node(s)
    id=1    @192.168.1.108  (mysql-5.6.17 ndb-7.3.5)

    [mysqld(API)]   2 node(s)
    id=4 (not connected, accepting connect from 10.21.2.250)
    id=5 (not connected, accepting connect from 10.21.2.251)

     

    目前只启动了管理节点,所以其它都是 not connected 的状态

    可以看到ndb_mgmd 连上的,nbd mysqld 还没有连上

  7. 启动MySQL Cluster存储节点

    在每台存储节点(ndbd)服务器上,如果是第一次启动ndbd进程的话,必须先执行以下命令:
    /usr/local/mysql/bin/ndbd --initial
    注意,仅应在首次启动ndbd时,或在备份/恢复数据或配置文件发生变化后重启ndbd时使用“--initial”参数。因为该参数会使节点删除由早期ndbd实例创建的、用于恢复的任何文件,包括用于恢复的日志文件。
    如果不是第一次启动,直接运行如下命令即可:
    /usr/local/mysql/bin/ndbd
    可以通过 root# /usr/local/mysql/bin/ndbd --help 得到ndbd命令的帮助信息

  8. 最后,运行以下命令启动SQL节点服务器(两台)

    第一次先安装数据库:
    cd /usr/local/mysql/   #
    不进入这个目录下面执行不成功
    /usr/local/mysql/scripts/mysql_install_db --user=mysql
    启动执行:

    /usr/local/mysql/support-files/mysql.server start

     

  9. 再查看一次管理结点

    Connected to Management Server at: 10.21.2.250:1186

    Cluster Configuration

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

    [ndbd(NDB)]     2 node(s)

    id=2   @10.21.2.250 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 0, *)

    id=3   @10.21.2.251 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 0)

     

    [ndb_mgmd(MGM)] 1 node(s)

    id=1   @10.21.2.250 (mysql-5.6.17 ndb-7.3.5)

     

    [mysqld(API)]   2 node(s)

    id=4   @10.21.2.250 (mysql-5.6.17 ndb-7.3.5)

    id=5   @10.21.2.251 (mysql-5.6.17 ndb-7.3.5)

  10. 创建数据库表测试效果

    与没有使用 ClusterMySQL相比,在MySQL Cluster内操作数据的方式没有太大的区别。执行这类操作时应记住两点:
    表必须用ENGINE=NDBENGINE=NDBCLUSTER选项创建,或用ALTER TABLE选项更改,以使用NDB Cluster存储引擎在 Cluster内复制它们。如果使用mysqldump的输出从已有数据库导入表,可在文本编辑器中打开SQL脚本,并将该选项添加到任何表创建语句,或用这类选项之一替换任何已有的ENGINE(或TYPE)选项。
    另外还请记住,每个NDB表必须有一个主键。如果在创建表时用户未定义主键,NDB Cluster存储引擎将自动生成隐含的主键。(注释:该隐含键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见)。
    下面是一个例子:
    sql节点(id=4/ip=10.21.2.250)上,创建数据表,插入数据:
    登录:
    /usr/local/mysql/bin/mysql –uroot -p
    切换数据库:
    use test
    创建表:
    create table user_info(
    id mediumint unsigned not null auto_increment primary key,
    username varchar(20) not null default ''
    ) engine = ndbcluster default charset utf8;
    insert into user_info values(1, 'eziep');
    insert into user_info values(2, 'lanzhou');
    sql节点(id=5/ip=10.21.2.251)上,查询数据:
    登录:
    /usr/local/mysql/bin/mysql -uroot
    切换数据库:
    use test
    查询:
    select * from user_info;
    +-----------+
    |id | username |
    +-----------+
    |1 | eziep |
    +-----------+
    |2 | lanzhou |
    +-----------+

  11. 安全关闭

    要想关闭 Cluster,可在MGM节点所在的机器上,在Shell中简单地输入下述命令:
    /usr/local/mysql/bin/ndb_mgm shutdown
    运行以下命令关闭SQL节点的mysqld服务:
    /usr/local/mysql/support-files/mysql.server stop

  12. 其他

 

文章標籤
創作者介紹
創作者 Jason0615 的頭像
Jason0615

吳承軒的部落格

Jason0615 發表在 痞客邦 留言(0) 人氣()