一、环境说明

节点

角色

操作系统

核心操作

master

MySQL 服务端

CentOS 7

安装完整 MySQL 服务 + 授权

slave1/slave2

MySQL 客户端

CentOS 7

仅安装客户端,远程访问 master

二、前置准备:修复所有节点的 yum 源(CentOS 7 官方源已停更)

1. 所有节点执行(master/slave1/slave2)

# 1. 备份原有 yum 配置 
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 
# 2. 编辑阿里云 yum 源配置 
vi /etc/yum.repos.d/CentOS-Base.repo

2. 粘贴以下阿里云源配置(清空原有内容)


[base] name=CentOS-7 - Base - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/ http://mirrors.aliyuncs.com/centos/7/os/x86_64/ http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-7 - Updates - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/7/updates/x86_64/ http://mirrors.aliyuncs.com/centos/7/updates/x86_64/ http://mirrors.cloud.aliyuncs.com/centos/7/updates/x86_64/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 [extras] name=CentOS-7 - Extras - mirrors.aliyun.com failovermethod=priority baseurl=http://mirrors.aliyun.com/centos/7/extras/x86_64/ http://mirrors.aliyuncs.com/centos/7/extras/x86_64/ http://mirrors.cloud.aliyuncs.com/centos/7/extras/x86_64/ gpgcheck=1 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

3. 刷新 yum 缓存(所有节点)

yum clean all && yum makecache

三、master 节点安装 MySQL 服务端

1. 上传并解压 MySQL 安装包

  • 通过 MobaXterm 将 mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar 上传至 master 节点 /usr/local/mysql

  • 解压安装包:

    mkdir -p /usr/local/mysql 
    cd /usr/local/mysql 
    tar -xvf mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar

    2. 卸载冲突包(CentOS 7 预装 mariadb-libs)

    rpm -e --nodeps mariadb-libs

    3. 安装必备依赖

    yum install -y libaio numactl perl net-tools perl-Getopt-Long

    4. 按顺序安装 MySQL RPM 包

    # 1. 公共依赖包
     rpm -ivh mysql-community-common-5.7.44-1.el7.x86_64.rpm 
    # 2. 库文件包 
    rpm -ivh mysql-community-libs-5.7.44-1.el7.x86_64.rpm 
    # 3. 客户端包(master 也需安装,用于本地操作) 
    rpm -ivh mysql-community-client-5.7.44-1.el7.x86_64.rpm 
    # 4. 服务端包 
    rpm -ivh mysql-community-server-5.7.44-1.el7.x86_64.rpm

    注:Header V4 RSA 签名警告可忽略,不影响功能。

    5. 初始化并启动 MySQL 服务

     初始化(生成临时密码) 
    mysqld --initialize --user=mysql 
    # 启动服务 + 设置开机自启 
    systemctl start mysqld systemctl enable mysqld 
    # 查看服务状态(确认启动成功) 
    systemctl status mysqld

    6. 修改 root 密码(MySQL 5.7 强制密码复杂度)

    # 1. 获取初始临时密码 
    grep 'temporary password' /var/log/mysqld.log 
    # 2. 登录 
    mysql -uroot -p 
    # 输入临时密码 # 3. 修改 root 密码(示例:123456,需包含大小写+数字+特殊字符)
    ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; 
    FLUSH PRIVILEGES; 
    # 4. 退出验证 
    exit 
    mysql -uroot -p123456 
    # 能登录即密码修改成功

    7. 创建 Hadoop 用户并授予全权限(适配集群访问)

     登录 root 账户后执行 
    GRANT ALL PRIVILEGES ON *.* TO 'hadoop'@'%' IDENTIFIED BY 'Hadoop@123'; 
    GRANT ALL PRIVILEGES ON *.* TO 'hadoop'@'localhost' IDENTIFIED BY 'Hadoop@123';
    GRANT ALL PRIVILEGES ON *.* TO 'hadoop'@'master' IDENTIFIED BY 'Hadoop@123'; 
    FLUSH PRIVILEGES; 
    # 刷新权限(必执行)

    8. 放行 3306 端口(允许 slave 节点远程访问)

    firewall-cmd --add-port=3306/tcp --permanent firewall-cmd --reload

    四、slave1/slave2 节点安装 MySQL 客户端(仅客户端,轻量)

    1. 从 master 拷贝安装包到 slave 节点

    • 在 master 节点执行:

      # 拷贝 3 个核心包到 /root 目录(便于传输) 
      cp /usr/local/mysql/mysql-community-common-5.7.44-1.el7.x86_64.rpm /root/ 
      cp /usr/local/mysql/mysql-community-libs-5.7.44-1.el7.x86_64.rpm /root/ 
      cp /usr/local/mysql/mysql-community-client-5.7.44-1.el7.x86_64.rpm /root/
      • 通过 MobaXterm 将上述 3 个包拖拽到 slave 节点的 /root 目录。

      2. slave 节点执行安装

      # 1. 卸载冲突包
       rpm -e --nodeps mariadb-libs
       # 2. 按顺序安装(依赖必须前置)
      rpm -ivh /root/mysql-community-common-5.7.44-1.el7.x86_64.rpm 
      rpm -ivh /root/mysql-community-libs-5.7.44-1.el7.x86_64.rpm 
      rpm -ivh /root/mysql-community-client-5.7.44-1.el7.x86_64.rpm

      3. 验证 slave 节点远程访问 master

      # 执行远程登录命令(master IP 替换为实际地址,如 192.168.56.110) 
      mysql -uhadoop -pHadoop@123 -h 192.168.56.110 
      # 验证权限(创建测试库) 
      CREATE DATABASE test_hadoop; 
      SHOW DATABASES; 
      # 显示 test_hadoop 即成功

      五、常见问题与解决方案

      问题现象

      原因

      解决方法

      yum install 提示无法解析 mirrorlist.centos.org

      CentOS 7 官方源停更

      替换为阿里云 yum 源(步骤二)

      安装 libs 包提示 mariadb-libs is obsoleted

      包冲突

      rpm -e --nodeps mariadb-libs 强制卸载

      安装 libs 包提示 mysql-community-common >= 5.7.9 is needed

      依赖缺失

      先安装 mysql-community-common

      slave 节点 mysql: command not found

      未安装客户端

      按步骤四安装 client 包

      slave 无法远程登录 master

      防火墙未放行 3306 端口

      master 节点执行 firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload

      密码修改失败提示 policy requirements

      密码复杂度不足

      密码需包含「大小写+数字+特殊字符」(如 Hadoop@123

      六、总结

      1. master 节点核心:替换 yum 源 → 卸载冲突包 → 按 common→libs→client→server 安装 → 初始化+改密码 → 授权+放行端口;

      2. slave 节点核心:从 master 拷贝包 → 卸载冲突包 → 按 common→libs→client 安装 → 远程登录验证;

      3. 关键原则:MySQL 5.7 依赖顺序不可乱,密码必须满足复杂度,远程访问需放行 3306 端口;

      4. 该教程适配 VirtualBox 下 CentOS 7 集群,可直接用于 Hadoop 集群对接 MySQL 的部署场景。

      Logo

      汇聚全球AI编程工具,助力开发者即刻编程。

      更多推荐