一、环境说明
|---------------|-----------|----------|--------------------|
| 节点 | 角色 | 操作系统 | 核心操作 |
| 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 mysql -uroot -p # 输入临时密码 # 3. 修改 root 密码(示例:Root@123456,需包含大小写+数字+特殊字符) ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123456'; FLUSH PRIVILEGES; # 4. 退出验证 exit mysql -uroot -pRoot@123456 # 能登录即密码修改成功
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) |
六、总结
-
master 节点核心 :替换 yum 源 → 卸载冲突包 → 按
common→libs→client→server安装 → 初始化+改密码 → 授权+放行端口; -
slave 节点核心 :从 master 拷贝包 → 卸载冲突包 → 按
common→libs→client安装 → 远程登录验证; -
关键原则:MySQL 5.7 依赖顺序不可乱,密码必须满足复杂度,远程访问需放行 3306 端口;
-
该教程适配 VirtualBox 下 CentOS 7 集群,可直接用于 Hadoop 集群对接 MySQL 的部署场景。