MySQL cluster 7.2集群部署配置

时间:2022-08-29 04:47:22
  • http://my.oschina.net/HankCN/blog/179866
  • 本文主要介绍在CentOS 6.3系统上搭建MySQL cluster 7.2.10集群的方法。
  • (另附:MySQL Cluster(MySQL集群)配置生成器(MySQL实验室提供)
  • http://www.mysqlab.net/tool/mysql-cluster/config.generator/computers/2/cpus/1/memory/1/replica/2
  • 1. MySQL cluster简介

    MySQL cluster主要有三种类型节点:

    Data node,数据节点将保存数据库,它会自动复制所有的数据节点;

    Daemon node,守护节点相当于是SQL数据库和客户端之间的接口,它提供从数据节点查询等操作,类似于"网关";

    Management node管理节点,用以监控和管理整个集群

    2. 部署配置方法

    本文介绍使用2台服务器(100与101)部署最简单的集群方法:其中100上部署Data nodeDaemon nodeManagement node;101上部署Data node,Daemon node。

    (2.1-2.3为所有节点均需执行的步骤,2.4和2.5为相关节点需执行的步骤)

    2.1下载MySQL cluster最新版本7.2.10,解压移动至 /usr/local/mysql目录下

    wget http://mysql.mirror.kangaroot.net/Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.10-linux2.6-x86_64.tar.gz

    tar -zxv -f mysql-cluster-gpl-7.2.10-linux2.6-x86_64.tar.gz

    mv mysql-cluster-gpl-7.2.10-linux2.6-x86_64 /usr/local/mysql

    2.2 添加mysql用户组及用户,修改相关目录权限

    groupadd mysql

    useradd mysql -g mysql

    cd /usr/local

    chown -R mysql:mysql mysql

    2.3 安装MySQL cluster

    cd mysql

    scripts/mysql_install_db --user=mysql

    2.4 配置管理节点

    #创建目录

    mkdir -p /var/lib/mysql-cluster

    #修改配置文件

    vim /var/lib/mysql-cluster/config.ini

    #config.ini内容如下

    [ndbd default]

    #NoOfReplicas表示数据份数,如果为1,会有数据节点单点故障

    NoOfReplicas=2

    DataMemory=200M

    IndexMemory=30M

    [ndb_mgmd]

    id=1

    hostname=192.168.85.100

    datadir=/var/lib/mysql-cluster/

    [ndbd]

    id=2

    hostname=192.168.85.101

    datadir=/usr/local/mysql/data

    [ndbd]

    id=3

    hostname=192.168.85.100

    datadir=/usr/local/mysql/data

    [mysqld]

    id=4

    hostname=192.168.85.100

    [mysqld]

    id=5

    hostname=192.168.85.101

    [mysqld]

    id=6

    2.5 配置数据节点和守护节点

    #拷贝文件,创建相关目录

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

    mkdir -p /var/mysql/data

    mkdir -p /var/mysql/logs

    # 修改配置文件

    vim /etc/my.cnf

    #my.cnf内容如下:

    [mysqld]

    ndbcluster

    datadir=/usr/local/mysql/data

    basedir=/usr/local/mysql

    socket=/tmp/mysql.sock

    port=3307

    ndb-connectstring=192.168.85.100

    [mysql_cluster]

    ndb-connectstring=192.168.85.100

    2.6 启动节点

    启动需要按照如下顺序进行:Management Node > Data Node > SQL Node

    2.6.1 管理结点启动

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

    其他操作:

    # 查看是否有端口号为1186的监听端口

    netstat -lntpu

    # 查看集群状态

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

    管理节点检验

    /usr/local/mysql/bin/ndb_mgm

    # 管理节点关闭

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

    2.6.2 数据节点启动

    # 只是在第一次启动或在备份/恢复或配置变化后重启ndbd时,才加–initial参数!

    /usr/local/mysql/bin/ndbd --initial

    # 正常启动方式

    /usr/local/mysql/bin/ndbd

    2.6.3 SQL节点启动

    service mysqld start

    # sql 节点关闭

    service mysql stop

    # 检验mysql是否运行

    /etc/rc.d/init.d/mysqld status

    # 为sql指定密码

    /usr/local/mysql/bin/mysqladmin -u root password 'new-password'

    /usr/local/mysql/bin/mysqladmin -u root -h 'host' password 'new-password'

    # 启动命令行窗口

    /usr/local/mysql/bin/mysql -u root –p

    3. 验证MySQL cluster功能

    下面在服务器上A上新建表并插入数据,在服务器B上验证MySQL cluster是否将数据同步。

    3.1 在服务器A上执行如下语句

    #进入sql监视器,注意后续的命令均已;或\g结尾

    /usr/local/mysql/bin/mysql

    MySQL cluster 7.2集群部署配置

    #查看数据库

    Show databases;

    MySQL cluster 7.2集群部署配置

    #使用test库

    Use test;

    MySQL cluster 7.2集群部署配置

    #查看test库,显示为空

    Show test;

    MySQL cluster 7.2集群部署配置

    #创建person表

    create table person(id int,name varchar(40),birthday date)ENGINE=ndb;

    MySQL cluster 7.2集群部署配置

    #插入数据

    Insert into person values(1,'Kate',19821212);

    MySQL cluster 7.2集群部署配置

    #查看表中数据

    Select * from test.person;

    MySQL cluster 7.2集群部署配置

    3.2 在服务器B上执行如下语句

    #进入sql监视器

    /usr/local/mysql/bin/mysql

    #查看表中数据,可以看到数据已经同步

    Select * from test.person;

    MySQL cluster 7.2集群部署配置

    同样也可在服务器B上执行Insert/Update/Delete等操作,然后在服务器A上验证数据是否同步。