如何在 CentOS 7 上安装和配置 MySQL 集群如何在 CentOS 7 上安装和配置 MySQL 集群如何在 CentOS 7 上安装和配置 MySQL 集群如何在 CentOS 7 上安装和配置 MySQL 集群
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 CentOS 7 上安装和配置 MySQL 集群

在此页

  1. 先决条件
  2. 第 1 步 - 设置管理节点
    1. A.下载 MySQL Cluster 软件
    2. B.安装和删除包
    3. C.安装 MySQL 集群
    4. D.配置 MySQL 集群
    5. E。启动管理节点

    1. A.以 root 用户登录并下载 MySQL Cluster 软件
    2. B.安装和删除包
    3. C.安装 MySQL 集群
    4. D.配置数据节点
    5. E。在 db3 服务器上重做步骤 2.A - 2.D。

    1. A.登录并下载 MySQL Cluster
    2. B.安装和删除包
    3. C.安装 MySQL 集群
    4. D.配置 SQL 节点
    5. E。在 db5 服务器上重做步骤 3.A - 3.D。

    MySQL Cluster 旨在提供具有高可用性和低延迟的 MySQL 兼容数据库。 MySQL Cluster 技术通过 NDB(网络数据库)和 NDBCLUSTER 存储引擎实现,为 MySQL 数据库系统提供无共享集群和自动分片。在shared-nothing架构中,每个节点都有自己的内存和磁盘,不推荐也不支持使用NFS、SAN等共享存储。

    要实现 MySQL 集群,我们必须安装三种类型的节点。每种节点类型都将安装在自己的服务器上。这些组件是:

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

    2. 数据节点 - NDBD/NDB
    这是节点之间发生同步和数据复制过程的层。

    3. SQL 节点 - MySQLD/API
    应用程序用来连接到数据库集群的接口服务器。

    在本教程中,我将指导您使用 centOS 7 安装和配置 MySQL 集群。我们将配置管理节点、两个数据节点和两个 SQL 节点。

    先决条件

    • 操作系统是 CentOS 7 - 64 位。
    • 5 个 CentOS 服务器或虚拟机。我将使用主机名和 IP 地址,如下所示:

      • 管理节点
        db1=192.168.1.120
      • 数据节点
        db2=192.168.1.121
        db3=192.168.1.122
      • SQL 节点
        db4=192.168.1.123
        db5=192.168.1.124

      步骤 1 - 设置管理节点

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

      A. 下载MySQL Cluster软件

      我将使用 wget 从 MySQL 站点下载它。我在这里使用与 CentOS 7 兼容的“Red Hat Enterprise Linux 7/Oracle Linux 7(x86,64 位),RPM Bundle”。然后提取 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

      B. 安装和删除包

      在安装 MySQL Cluster 的 rpm 包之前,您需要安装 MySQL-Cluster 服务器所需的 perl-Data-Dumper。在我们安装 MySQL Cluster 之前,您需要删除 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

      可以看到管理节点已经启动:mysql-6.6和ndb-7.4。

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

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

      1. db2=192.168.1.121
      2. db3=192.168.1.122

      A. 以root用户登录并下载MySQL Cluster软件

      使用 ssh 登录到 db2 服务器:

      ssh 

      然后下载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-Data-Dumper 并删除 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.配置数据节点

      使用 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

      现在启动数据节点/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

      数据节点db2连接管理节点ip 192.168.1.120。

      E. 在 db3 服务器上重做步骤 2.A - 2.D。

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

      第 3 步 - 设置 SQL 节点

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

      1. db4=192.168.1.123
      2. db5=192.168.1.124

      A.登录并下载MySQL Cluster

      以 root 用户身份登录到 db4 服务器:

      ssh 

      并下载 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-Data-Dumper 并删除与 MySQL Cluster 冲突的 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. 配置 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 服务器 (db5) 上重做步骤 3.A - 3.D。

      第 4 步 - 监控集群

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

      ssh 

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

      ndb_mgm
      ndb_mgm> show

      另一个有用的命令是:

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

      第 5 步 - 测试集群

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

      登录到 db4 服务器:

      ssh 

      更改存储在根目录下的“.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 密码,然后输入新密码,按回车键确认所有。

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

      mysql -u root -p

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

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

      将 aqwe123 替换为您自己的安全密码!现在您可以在 MySQL 用户列表中看到主机为 \@\ 的新 root 用户:

      select user, host, password from mysql.user;

      并授予新的 root 用户从远程节点读取和写入的权限:

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

      现在尝试从 db4 服务器创建一个新数据库,您也会在 db5 上看到该数据库。

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

      已在具有 5 个服务器节点的 CentOS 7 上成功设置 MySQL 集群。

      结论

      MySQL Cluster 是一种为 MySQL 数据库提供高可用性和冗余性的技术。它使用 NDB 或 NDBCLUSTER 作为存储引擎,并为 MySQL 数据库提供无共享集群和自动分片。要实现集群,我们需要 3 个组件:管理节点 (MGM)、数据节点 (NDB) 和 SQL 节点 (API)。每个节点必须有自己的内存和磁盘。不建议使用 NFS 等网络存储。要在 CentOS 7 最小系统上安装 MySQL Cluster,我们必须删除 mariadb-libs 包,mariadb-libs 与 MySQL-Cluster-server 冲突,你必须安装 perl-Data-Dumper 包,它是 MySQL-Cluster 所需要的-服务器。 MySQL 集群很容易在多个 CentOS 服务器上安装和配置。

©2015-2025 艾丽卡 support@alaica.com