MySQL集群搭建及问题解决

  • 192.168.81.147 管理节点
  • 192.168.81.143 192.168.81.144 数据节点
  • 192.168.81.145 195.168.81.146 SQL节点
  1. 配置好五台虚拟机(CentOS 7.2)。
  2. 在官网下载Mysql-Cluster二进制安装包(MySQL Cluster 7.5.5)。
  3. 配置管理节点(192.168.81.147)。
    (1) cd /var/tmp
    (2) tar -zxvf mysql-5.7.17-ndb-7.5.6-linux2.6-i686.tar.gz,解压安装包。
    (3) cd mysql-5.7.17-ndb-7.5.6-linux2.6-i686
    (4) cp bin/ndb_mgm* /usr/local/bin
    (5) cd /usr/local/bin
    (6) chmod +x ndb_mgm*
  4. 配置数据节点(192.168.81.143 192.168.81.144)。
    (1) cd /var/tmp
    (2)tar -zxvf mysql-5.7.17-ndb-7.5.6-linux-i686-glibc23.tar.gz
    (3) cd mysql-5.7.17-ndb-7.5.6-linux-i686-glibc23
    (4) cp bin/ndbmtd /usr/local/bin/ndbmtd
  5. 配置SQL节点。(192.168.81.145 195.168.81.146 )
    (1)groupadd mysql
    (2) useradd -g mysql -s /bin/false mysql
    (3) cd /var/tmp
    (4) tar -C /usr/local -xzvf mysql-cluster-gpl-7.5.6-linux2.6.tar.gz
    (5) ln -s /usr/local/mysql-cluster-gpl-7.5.6-linux2.6-i686 /usr/local/mysql
    (6) cd mysql
    (7) mysqld --initialize --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    (这时会出现MySQL的登录密码,请记好该密码)。
    (8) chown -R root .
    (9) chown -R mysql data
    (10) chgrp -R mysql .
    (11) cp support-files/mysql.server /etc/rc.d/init.d/
    (12) chmod +x /etc/rc.d/init.d/mysql.server
    (13) chkconfig --add mysql.server
  6. 配置数据节点和SQL节点的my.cnf。
    (1)vi /etc/my.cnf
    (2)将my.cnf文件改为如下内容

[mysqld]
ndbcluster # run NDB storage engine
[mysql_cluster]
ndb-connectstring=192.168.0.10 # location of management server

  1. 配置管理节点的config.ini。
    (1)mkdir /var/lib/mysql-cluster
    (2)cd /var/lib/mysql-cluster
    (3) vi config.ini
    (4)将如下内容复制到config.ini。

    > [ndbd default]
    NoOfReplicas=2
    DataMemory=80M
    IndexMemory=18M
    [ndb_mgmd]
    NodeId=1
    hostname=192.168.81.147
    datadir=/var/lib/mysql-cluster
    [ndbd]
    NodeId=2
    hostname=192.168.81.143
    datadir=/usr/local/mysql/data
    [ndbd]
    NodeId=3
    hostname=192.168.81.144
    datadir=/usr/local/mysql/data
    [mysqld]
    NodeId=4
    hostname=192.168.81.145
    [mysqld]
    NodeId=5
    hostname=192.168.81.146
    
  2. 启动mysql集群。启动顺序为:管理节点→数据节点→SQL节点。
    (1)启动管理节点:ndb_mgmd -f /var/lib/mysql-cluster/config.ini
    (2)启动数据节点:/usr/local/mysql/bin/ndbd --initial(首次启动)/usr/local/mysql/bin/ndbd(非首次启动)
    (3)启动SQL节点:/usr/local/mysql/bin/mysqld_safe --user=mysql &

  3. 启动成功,进行测试。
    (1)在一个SQL节点上进行数据操作,看另一个SQL节点是否能同步数据。
    shell> /usr/local/mysql/bin/mysql -u root -p
    mysql>show databases;
    mysql>create database test1;
    mysql>use test1;
    mysql>CREATE TABLE student (age INT) ENGINE=NDB; //这里必须指定数据库表的引擎为NDB,否则同步失败
    mysql> INSERT INTO student VALUES (1);
    mysql> SELECT * FROM student;
    (2)关闭一个数据节点 ,在另外一个节点写输入,开启关闭的节点,看数据是否同步过来。首先把数据结点1重启,然后在结点2上添加数据。
    mysql> INSERT INTO student () VALUES (3333);
    mysql> SELECT * FROM student;

  4. 若启动管理节点报错,使用ndb_mgmd --skip-config-cache -f /var/lib/mysql-cluster/config.ini

  5. 启动、关闭或者重启SQL节点时,使用/etc/init.d/mysql.server stop/start/restart

博主博客地址:www.javajs.cn

你可能感兴趣的:(系统架构)