Mysql集群安装详细步骤

作者: 老老戟 | 来源:发表于2019-01-24 14:08 被阅读12次
    图片.png

    MySQL集群是为了提供一个高可用性和低延迟的MySQL兼容数据库而设计的。mysql集群技术通过ndb(网络数据库)和ndb cluster存储引擎实现,为mysql数据库系统提供无共享集群和自动分片。在无共享架构中,每个节点都有自己的内存和磁盘,不建议和支持使用共享存储(如NFS、SAN)。

    为了实现MySQL集群,我们必须安装三种类型的节点。每个节点类型都将安装在自己的服务器上。组件包括:

    1。管理节点-ndb_mgmd/mgm

    集群管理服务器用于管理集群的其他节点。我们可以从管理节点创建和配置集群上的新节点、重新启动、删除或备份节点。

    2。数据节点-ndbd/ndb

    这是节点之间发生同步和数据复制过程的层。

    3。SQL节点-mysqld/api

    应用程序用于连接到数据库群集的接口服务器。

    使用Centos7安装和配置MySQL集群。我们将配置管理节点、两个数据节点和两个SQL节点

    先决条件

    1. CentOS 7 - 64bit.
    2. CentOS服务器名称ip如下
    
        管理节点 Management Node
        db1 = 192.168.1.120
    
        数据节点 Data Nodes
        db2 = 192.168.1.121
        db3 = 192.168.1.122
    
        Sql节点 SQL Nodes
        db4 = 192.168.1.123
        db5 = 192.168.1.124
    

    步骤1-设置管理节点

    第一步是使用CentOS 7 DB1和IP 192.168.1.120创建“管理节点”。确保以根用户身份登录到DB1服务器。

    a.下载mysql集群软件

    我将用wget从mysql网站下载。我在这里使用的是“Red Hat Enterprise Linux 7/Oracle Linux 7(x86,64位),RPM包”,它与CentOS 7兼容。然后提取tar文件。

    cd ~
    wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
    tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
    
    图片.png

    b.安装和拆除包装

    在安装MySQL集群的RPM包之前,需要安装MySQL集群服务器所需的Perl数据转储程序。在安装mysql集群之前,您需要删除mariadb libs。

    yum -y install perl-Data-Dumper
    yum -y remove mariadb-libs
    

    c.安装mysql集群

    使用以下rpm命令安装mysql cluster包:

    cd ~
    rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
    rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
    rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm
    

    d.配置mysql集群

    为配置文件创建新目录。我将使用“/var/lib/mysql cluster”目录。

    mkdir -p /var/lib/mysql-cluster
    

    然后为mysql cluster目录中名为“config.ini”的集群管理创建新的配置文件。

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

    粘贴如下配置

    [ndb_mgmd default]
    # Directory for MGM node log files
    DataDir=/var/lib/mysql-cluster
     
    [ndb_mgmd]
    #Management Node db1
    HostName=192.168.1.120
     
    [ndbd default]
    NoOfReplicas=2      # Number of replicas
    DataMemory=256M     # Memory allocate for data storage
    IndexMemory=128M    # Memory allocate for index storage
    #Directory for Data Node
    DataDir=/var/lib/mysql-cluster
     
    [ndbd]
    #Data Node db2
    HostName=192.168.1.121
     
    [ndbd]
    #Data Node db3
    HostName=192.168.1.122
     
    [mysqld]
    #SQL Node db4
    HostName=192.168.1.123
     
    [mysqld]
    #SQL Node db5
    HostName=192.168.1.124
    

    保存

    e.启动管理节点

    接下来,使用下面的命令启动管理节点:

    ndb_mgmd --config-file=/var/lib/mysql-cluster/config.ini
    

    返回内容

    MySQL Cluster Management Server mysql-5.6.28 ndb-7.4.10
    2016-03-22 19:26:08 [MgmtSrvr] INFO     -- The default config directory '/usr/mysql-cluster' does not exist. Trying to create it...
    2016-03-22 19:26:08 [MgmtSrvr] INFO     -- Successfully created config directory
    

    管理节点已启动,现在可以使用命令“ndb_mgm”来监视节点:

    ndb_mgm
    show
    
    图片.png

    步骤2-设置MySQL集群数据节点

    我们将使用2个CentOS服务器作为数据节点。

    DB2=192.168.1.121
    DB3=192.168.1.122

    a.以root用户身份登录,下载mysql集群软件

    使用ssh登录DB2服务器:

    ssh root@192.168.1.121
    

    然后下载mysql cluster包并将其解压缩:

    cd ~
    wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
    tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
    

    b.安装和拆除包装

    安装Perl数据转储程序并删除mariadb libs:

    yum -y install perl-Data-Dumper
    yum -y remove mariadb-libs
    

    c.安装mysql集群

    现在,我们可以使用以下rpm命令为数据节点安装mysql集群包:

    cd ~
    rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
    rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
    rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm
    

    d.配置数据节点

    使用vi编辑器在/etc目录中创建新的配置文件:

    vi /etc/my.cnf
    

    粘贴如下配置

    [mysqld]
    ndbcluster
    ndb-connectstring=192.168.1.120     # IP address of Management Node
     
    [mysql_cluster]
    ndb-connectstring=192.168.1.120     # IP address of Management Node
    

    保存

    然后为我们在管理节点配置文件“config.ini”中定义的数据库数据创建新目录。

    mkdir -p /var/lib/mysql-cluster
    

    现在开始data node/ndbd:

    ndbd
    

    返回

    2016-03-22 19:35:56 [ndbd] INFO     -- Angel connected to '192.168.1.120:1186'
    2016-03-22 19:35:56 [ndbd] INFO     -- Angel allocated nodeid: 2
    
    图片.png

    数据节点DB2连接到管理节点IP 192.168.1.120。

    e.在DB3服务器上重做步骤2.a-2.d。

    由于我们有两个数据节点,请在第二个数据节点上重做步骤2.a-2.d。

    步骤3-设置SQL节点

    这是一个步骤,包含为SQL节点提供对数据库的应用程序访问的设置。我们为SQL节点使用2个CentOS服务器:

    DB4=192.168.1.123

    DB5=192.168.1.124

    a.登录下载mysql集群

    ssh root@192.168.1.123
    

    下载 MySQL Cluster package:

    cd ~
    wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
    tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
    

    b.安装和拆除包装

    安装perl数据转储程序并删除与mysql集群冲突的mariadb libs。

    yum -y install perl-Data-Dumper
    yum -y remove mariadb-libs
    

    c.安装mysql集群

    使用下面的rpm命令安装mysql集群服务器、客户端和共享包:

    cd ~
    rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
    rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
    rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm
    

    d.配置SQL节点

    在/etc目录中新建my.cnf文件:

    vi /etc/my.cnf
    

    粘贴配置

    [mysqld]
    ndbcluster
    ndb-connectstring=192.168.1.120       # IP address for server management node
    default_storage_engine=ndbcluster     # Define default Storage Engine used by MySQL
     
    [mysql_cluster]
    ndb-connectstring=192.168.1.120       # IP address for server management node
    

    保存文件并退出编辑器。

    通过启动MySQL服务器启动SQL节点:

    service mysql start
    

    e.在DB5服务器上重做步骤3.a-3.d。

    请在第二个SQL Server(DB5)上重做步骤3.a-3.d。

    步骤4-监视群集

    要查看集群状态,我们必须登录到管理节点db1。

    ssh root@192.168.1.120
    

    我们可以使用ndb_mgm命令查看集群状态:

    ndb_mgm
    ndb_mgm> show
    
    图片.png

    其他有用的命令

    ndb_mgm -e "all status"
    ndb_mgm -e "all report memory"
    

    步骤5-测试群集

    要在新的MySQL集群上执行测试,我们必须登录到SQL节点DB4或DB5服务器。

    登录到DB4服务器:

    ssh root@192.168.1.123
    

    更改根目录下“.mysql_secret”文件中存储的默认mysql密码:

    cd ~
    cat .mysql_secret
    

    例子

    # The random password set for the root user at Tue Mar 22 19:44:07 2016 (local time): qna3AwbJMuOnw23T
    

    现在用下面的命令更改密码:

    mysql_secure_installation
    

    键入旧的MySQL密码,然后键入新密码,按Enter确认所有密码。

    如果全部完成,您可以用密码登录mysql shell:

    mysql -u root -p
    

    登录后,用主机“@”创建一个新的根用户,这样我们就可以从外部访问MySQL。

    CREATE USER 'root'@'%' IDENTIFIED BY 'aqwe123';
    

    用您自己的安全密码替换AQWE123!现在您可以在mysql用户列表中看到主机为“@”的新根用户:

    select user, host, password from mysql.user;
    

    并从远程节点授予新的根用户读写访问权:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*94CC7BF027327993D738E11...(Encrypted PASSWORD)' WITH GRANT OPTION;
    
    图片.png

    现在尝试从DB4服务器创建一个新的数据库,您也将看到DB5上的数据库。

    这只是测试集群数据复制的一个示例结果。

    图片.png

    MySQL群集已在CentOS 7上成功安装,有5个服务器节点。

    结论

    mysql集群是一种为mysql数据库提供高可用性和冗余的技术。它使用ndb或ndbcluster作为存储引擎,为MySQL数据库提供无共享集群和自动切分。为了实现集群,我们需要3个组件:管理节点(mgm)、数据节点(ndb)和SQL节点(api)。每个节点都必须有自己的内存和磁盘。不建议使用网络存储,如NFS。要在CentOS 7 Minimal系统上安装MySQL集群,我们必须删除Mariadb libs包,Mariadb libs与MySQL集群服务器冲突,必须安装Perl数据转储程序包,这是MySQL集群服务器所需要的。MySQL集群易于在多个CentOS服务器上安装和配置。

    相关文章

      网友评论

        本文标题:Mysql集群安装详细步骤

        本文链接:https://www.haomeiwen.com/subject/jgmyjqtx.html