MySQL Cluster集群搭建说明(亲测)


MySQL Cluster集群搭建说明(亲测)
创建一个功能齐全的集群,至少需要3台主机才可以完成。其中一个主机作为管理节点,另外两个做数据节点。如果数据节点脱机,群集仍然可以工作,但是一旦管理节点出现问题,将导致集群无法正常工作,所以在可能的情况下,建立两个管理节点。

系统版本: ubuntu-14.04
集群版本: mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64
管理节点: 10.251.248.39
数据节点: 10.117.8.20
SQL节点: 10.252.97.106


在三台服务器上下载mysql-cluster,均存放在目录/usr/local/src
wget 
http://cdn.mysql.com/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64.tar.gz
一、安装管理节点(10.251.248.39)
----安装管理节点只需要安装包中的 ndb_mgmd 和 ndb_mgm 二进制文件
1. 解压源码包,并将ndb_mgmd 和 ndb_mgm移至/usr/bin目录下
root@iZ23tsilmb7Z:~# cd /usr/local/src
root@iZ23tsilmb7Z:/usr/local/src# tar -zxvf mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64.tar.gz
root@iZ23tsilmb7Z:/usr/local/src# cp -R mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64 mysql-cluster
root@iZ23tsilmb7Z:/usr/local/src# cd mysql-cluster
root@iZ23tsilmb7Z:/usr/local/src/mysql-cluster# ls
bin  COPYING  docs  man  mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64  mysql-test
root@iZ23tsilmb7Z:/usr/local/src/mysql-cluster# cp bin/ndb_mgmd /usr/bin
root@iZ23tsilmb7Z:/usr/local/src/mysql-cluster# cp bin/ndb_mgm  /usr/bin
root@iZ23tsilmb7Z:/usr/local/src/mysql-cluster# chmod 755 /usr/bin/ndb_mg*
2.创建mysql-cluster配置文件
root@iZ23tsilmb7Z:/usr/local/src/mysql-cluster# mkdir /var/lib/mysql-cluster
root@iZ23tsilmb7Z:/usr/local/src/mysql-cluster# cd /var/lib/mysql-cluster/
root@iZ23tsilmb7Z:/var/lib/mysql-cluster# vim config.ini
        [ndbd default]
        NoOfReplicas=1
        DataMemory=200M
        IndexMemory=20M
    [ndb_mgmd]
        NodeId=1
        hostname=10.251.248.39
        datadir=/var/lib/mysql-cluster/
    [ndbd]
        NodeId=2
        hostname=10.117.8.20
        datadir=/usr/local/mysql/data
    [mysqld]
        hostname=10.252.97.106
3.Cluster启动,使用ndb_mgmd命令启动管理节点进程
root@iZ23tsilmb7Z:/var/lib/mysql-cluster# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/
MySQL Cluster Management Server mysql-5.6.29 ndb-7.4.11
root@iZ23tsilmb7Z:/var/lib/mysql-cluster# echo "ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/" > /etc/init.d/ndb_mgmd
root@iZ23tsilmb7Z:/var/lib/mysql-cluster# chmod 755 /etc/init.d/ndb_mgmd
root@iZ23tsilmb7Z:/var/lib/mysql-cluster#
二、数据节点(10.117.8.20)
----安装管理节点只需要安装包中的 ndbd 和 ndbmtd 二进制文件
1. 解压源码包,并将ndbd和ndbmtd移至/usr/bin目录下
root@iZ23r0899lxZ:~# cd /usr/local/src
root@iZ23r0899lxZ:/usr/local/src# tar -zxvf mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64.tar.gz
root@iZ23r0899lxZ:/usr/local/src# cp -R mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64 mysql-cluster
root@iZ23r0899lxZ:/usr/local/src# cd mysql-cluster
root@iZ23r0899lxZ:/usr/local/src/mysql-cluster# cp bin/ndbd /usr/bin/
root@iZ23r0899lxZ:/usr/local/src/mysql-cluster# cp bin/ndbmtd /usr/bin/
2. 修改mysql配置文件,将下列信息添加到配置文件中
root@iZ23r0899lxZ:/usr/local/src/mysql-cluster# vim /etc/my.cnf
    [mysqld]
    ndbcluster
    
    [mysql_cluster]
    ndb_connectstring=10.251.248.39
3. 初始化数据节点,如果是第一次启动,需要添加--initial参数
root@iZ23r0899lxZ:/usr/local/src/mysql-cluster# ndbd --initial
2016-07-02 23:53:06 [ndbd] INFO     -- Angel connected to '10.251.248.39:1186'
2016-07-02 23:53:06 [ndbd] INFO     -- Angel allocated nodeid: 2
2016-07-02 23:53:06 [ndbd] WARNING  -- Cannot change directory to '/usr/local/mysql/data', error: 2
2016-07-02 23:53:06 [ndbd] ERROR    -- Couldn't start as daemon, error: 'Failed to open logfile '/usr/local/mysql/data/ndb_2_out.log' for write, errno: 2'
//如果启动时,不能改变目录,创建data目录,
root@iZ23r0899lxZ:/usr/local/src/mysql-cluster# mkdir /usr/local/mysql/data
root@iZ23r0899lxZ:/usr/local/src/mysql-cluster# ndbd --initial
2016-07-02 23:55:15 [ndbd] INFO     -- Angel connected to '10.251.248.39:1186'
2016-07-02 23:55:15 [ndbd] INFO     -- Angel allocated nodeid: 2
//没有报错时,说明启动成功
4.添加到启动项
root@iZ23r0899lxZ:/usr/local/src/mysql-cluster# echo "ndbd" > /etc/init.d/ndbd 
root@iZ23r0899lxZ:/usr/local/src/mysql-cluster# chmod 755 /etc/init.d/ndbd
三、SQL节点(10.252.97.106)
1.解压源码包,安装相关依赖包
root@iZ23yrv1t36Z:~# cd /usr/local/src
root@iZ23yrv1t36Z:/usr/local/src# tar -zxvf mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64.tar.gz
root@iZ23yrv1t36Z:/usr/local/src# cp -R mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64 ../mysql-cluster
root@iZ23yrv1t36Z:/usr/local/src# cd ../mysql
root@iZ23yrv1t36Z:/usr/local/mysql# apt-get install libaio1 libaio-dev
root@iZ23yrv1t36Z:/usr/local/mysql#
2.添加权限及mysql安装
root@iZ23yrv1t36Z:/usr/local/mysql# groupadd mysql
root@iZ23yrv1t36Z:/usr/local/mysql# useradd -g mysql mysql
root@iZ23yrv1t36Z:/usr/local/mysql# mkdir -p /usr/local/mysql/data
root@iZ23yrv1t36Z:/usr/local/mysql# ls
bin      data  include  man         README   share      support-files
COPYING  docs  lib      mysql-test  scripts  sql-bench
root@iZ23yrv1t36Z:/usr/local/src/mysql# scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
3.修改文件权限
root@iZ23yrv1t36Z:/usr/local/mysql# chown -R root:mysql
root@iZ23yrv1t36Z:/usr/local/mysql# chown -R mysql data
root@iZ23yrv1t36Z:/usr/local/mysql# cp support-files/mysql.server /etc/init.d/
root@iZ23yrv1t36Z:/usr/local/mysql# chmod 755 /etc/init.d/mysql.server
root@iZ23yrv1t36Z:/usr/local/mysql#
4.配置并停止mysql(停止mysql是为了修改mysql密码)
root@iZ23yrv1t36Z:/usr/local/mysql# vim /etc/my.cnf
    [mysqld]
    ndbcluster
    socket          = /tmp/mysql.sock
        basedir         = /usr/local/mysql
    [mysql_cluster]
    ndb_connectstring=10.251.248.39
root@iZ23yrv1t36Z:/usr/local/mysql# /etc/init.d/mysql.server stop
 * MySQL server PID file could not be found!
5.通过安全方式启动mysql并修改密码
root@iZ23yrv1t36Z:/usr/local/mysql# cd bin
root@iZ23yrv1t36Z:/usr/local/mysql/bin# ./mysqld_safe --user=mysql &
//注意:另取一个session会话进行密码修改
root@iZ23yrv1t36Z:~# cd /usr/local/mysql/bin
root@iZ23yrv1t36Z:/usr/local/mysql/bin# ./mysql -uroot
mysql> update mysql.user set password=password('root') where User='root' and Host='localhost';
mysql> flush privileges;
mysql> exit;
//修改完成后,回到刚才的会话中,单击 ctrl+c
root@iZ23yrv1t36Z:/usr/local/mysql/bin# ./mysql -uroot -proot
四、启动mysql cluster集群
mysql集群的启动顺序:1管理节点-2数据节点-3SQL节点
进入管理节点查看相关信息

root@iZ23tsilmb7Z:/usr/local/src/mysql-cluster# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     1 node(s)
id=2 (not connected, accepting connect from 10.117.8.20)
[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.251.248.39  (mysql-5.6.29 ndb-7.4.11)
[mysqld(API)]   1 node(s)
id=3 (not connected, accepting connect from 10.252.97.106)
ndb_mgm>
注意:MySQL Cluster 会将存储引擎为NDB的表数据同步,而其他存储引擎不会将数据同步到其他数据节点

  • 发布时间:2019-04-05