• CentOS搭建MySQL-Cluster集群


    1、准备

      1)操作系统为CentOS,使用root用户安装

      2)下载mysql-cluster-gpl-7.6.13-el7-x86_64.tar.gz,下载地址https://dev.mysql.com/downloads/cluster/7.6.html

      3)准备3台Linux主机

    IP地址 作用
    172.16.43.142 管理节点
    172.16.43.148 数据节点、SQL节点
    172.16.43.149 数据节点、SQL节点

        保证所有主机防火墙对1181和3306端口例外,或直接禁用防火墙

    systemctl stop firewalld.service
    systemctl disable firewalld.service

    2、安装管理节点(Management Node)

      管理节点最好与数据节点不在同一台机器,如果在同一台机器,当这台机器挂了,则整个服务不可用

      1)创建文件/var/lib/mysql-cluster/config.ini

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

      文件内容为(配置说明见:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-configuration.htmlhttps://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-ndbd-definition.html):

    [ndbd default]
    NoOfReplicas=2
    
    [ndb_mgmd]
    NodeId=1
    HostName=172.16.43.151
    DataDir=/var/lib/mysql-cluster
    
    [ndbd]
    NodeId=11
    HostName=172.16.43.153
    DataDir=/usr/local/mysql/data
    [ndbd]
    NodeId=12
    HostName=172.16.43.154
    DataDir=/usr/local/mysql/data
    
    [mysqld]
    NodeId=21
    HostName=172.16.43.153
    [mysqld]
    NodeId=22
    HostName=172.16.43.154

      注意:NodeId只能是数字,可以在不同类型节点间空出几个数字,以备扩展。NoOfReplicas值范围是1-2。

      2)解压安装文件,拷贝需要的程序

      对于单纯管理节点,只需要ndb_mgm和ndb_mgmd,其他解压内容都可以删除。

    tar zxvf mysql-cluster-gpl-7.6.13-el7-x86_64.tar
    cd mysql-cluster-gpl-7.6.13-el7-x86_64/
    cp bin/ndb_mgm* /usr/local/bin
    chmod +x /usr/local/bin/ndb_mgm*

      3)启动管理节点,并查看集群信息

    ndb_mgmd -f /var/lib/mysql-cluster/config.ini --config-cache=FALSE
    ndb_mgm

      ndb_mgmd启动参数介绍:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-programs-ndb-mgmd.html

      因为我们的数据节点和SQL节点都没安装,所有状态都是not connected。

    3、安装SQL节点(SQL Node)

      1)创建mysql用户和组

    groupadd mysql
    useradd -g mysql mysql

      2)修改/etc/my.cnf文件

    vi /etc/my.cnf

      修改后的内容为:

    [mysqld]
    ndbcluster
    default-storage-engine=ndbcluster
    character_set_server=utf8
    lower_case_table_names=1
    #basedir=/usr/local/mysql #datadir
    =/usr/local/mysql/data [mysql_cluster] ndb-connectstring=172.16.43.151
    配置说明:
    default-storage-engine=ndbcluster设置默认Engine。
    lower_case_table_names=1,设置大小写不敏感。
    character_set_server=utf8设置字符集,mysql默认字符集不支持汉字
    此处datadir与config.ini中的DataDir是不同的设置,一个针对SQL节点,一个针对数据节点,它们的值可以相同,也可以不同,如果相同,且SQL节点与数据节点在同一台主机,则需保证SQL节点要先初始化,不然会报错
    如果安装位置不是/usr/local/mysql,则需要basedir参数,不然mysql初始化时有些配置找不到。

      3)创建数据存储目录并更改属性

    mkdir /usr/local/mysql/data
    
    cd /usr/local/mysql/
    chown -R mysql data
    chgrp -R mysql .

      3)解压安装文件并初始化

    tar -xzvf mysql-cluster-gpl-7.6.13-el7-x86_64.tar.gz
    mv mysql-cluster-gpl-7.6.13-el7-x86_64/ /usr/local/mysql
    cd /usr/local/mysql
    ./bin/mysqld --initialize --user=mysql

      记住上图中初始化生成的随机密码,丢了我是不晓得在哪可以再找到这个临时密码

      4)添加并启动Linux服务

    cp support-files/mysql.server /etc/init.d/mysqld
    chmod +x /etc/init.d/mysqld
    chkconfig --add mysqld
    service mysqld start

    4、安装数据节点

      1)复制ndbd和ndbmtd文件并授权

      对于单纯数据节点,只需要ndbd和ndbmtd文件,其他解压文件均可删除

    cd /usr/local/mysql
    cp bin/ndbd /usr/local/bin/ndbd
    cp bin/ndbmtd /usr/local/bin/ndbmtd
    
    chmod +x /usr/local/bin/ndb*
    

      2)修改my.cnf文件(如果数据节点与SQL节点在同一台服务器,且datadir一样,这一步可省略

    [mysqld]
    ndbcluster
    
    [mysql_cluster]
    ndb-connectstring=172.16.43.142

      3)创建管理节点config.ini中ndbd定义的DataDir目录(如果数据节点与SQL节点在同一台服务器,且datadir一样,这一步可省略)

    mkdir /usr/local/mysql
    mkdir /usr/local/mysql/data

      4)启动数据节点

    ndbd

    5、验证安装

      1)打开管理节点,重新查看各个节点状态,若出现下图则表示全部安装完成

      2)登陆mysql,创建'root'@'%'用户,每个SQL节点都要创建

    # 使用'root'%'localhost'用户登陆
    cd /usr/local/mysql/bin
    ./mysql -u root -p
    set password = password('abc123');
    
    # 创建'root'@'%'
    create user 'root'@'%' identified by 'abc123';
    grant all on *.* to 'root'@'%' with grant option;

      3)使用数据库连接工具创建数据库表,注意表的Engine为ndbcluster(也可以在my.cnf中设置默认引擎),这样2个SQL节点都可以看到这张表和表中的数据了。

    出现的问题:

    1、启动ndb_mgmd时报,Could not create directory '/usr/local/mysql/mysql-cluster'. Either create it manually or specify a different directory with --configdir=<path>

      解决方式一:增加--config-cache=FALSE

      解决方式二:配置--configdir参数为已存在的目录

      解决方式三:创建默认的/usr/local/mysql/mysql-cluster目录

    2、mysqld(API) not connected(如下图),检测防火墙是否打开了。

    其他:

      官网安装介绍:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-linux-binary.html

  • 相关阅读:
    k8s采坑记
    [dotnet] 封装一个同时支持密码/安全密钥认证的SFTP下载器,简单易用。
    亲测可用,iptables实现NAT转发。
    【转】干货,Kubernetes中的Source Ip机制。
    k8s实践
    干货!分享一款windows下的磁盘分析神器。
    干货,不小心执行了rm -f,除了跑路,如何恢复?
    Java8函数式编程
    搭建git服务器
    Python3安装
  • 原文地址:https://www.cnblogs.com/zhi-leaf/p/12543503.html
Copyright © 2020-2023  润新知