CentOS Stream 8中yum是dnf的符号链接,需先验证系统版本和yum版本(≥4.2.13),再禁用默认mysql模块并安装官方MySQL 8.0/8.4仓库RPM,最后启用对应repo并清理缓存。

确认系统版本和Yum工具链是否就绪
CentOS Stream 8 的 yum 实际是 dnf 的符号链接,但所有命令仍可沿用 yum。先验证基础环境:
-
cat /etc/centos-release应输出类似CentOS Stream 8 -
yum --version应高于4.2.13(低于此版本可能无法解析新版 repo 元数据) - 若提示
command not found,需先安装:yum install -y dnf-utils
关键点:不要跳过 yum module disable mysql —— CentOS Stream 8 自带的 mysql 模块会与官方 MySQL 8.0 冲突,不 disable 会导致 yum install mysql-community-server 安装失败或降级为旧版。
下载并安装 MySQL 8.0 官方 Yum 仓库 RPM
必须使用匹配 el8 的 RPM 包,常见错误是误用 el7 或 el9 版本。当前(2026年)推荐下载:
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm- 或更稳妥的 8.4+ 兼容版:
wget https://dev.mysql.com/get/mysql84-community-release-el8-1.noarch.rpm
安装后立即验证:
yum localinstall mysql80-community-release-el8-1.noarch.rpm -y-
yum repolist enabled | grep "mysql.*-community"—— 应看到mysql80-community或mysql84-community启用状态 - 若无输出,说明 RPM 未生效,检查是否漏执行
yum makecache
检查并禁用系统自带的 mysql 模块
这是最容易被跳过的致命步骤。CentOS Stream 8 默认启用 mysql:latest 模块,它会强制提供 MariaDB 兼容层,覆盖你刚装的官方源。
- 运行
yum module list mysql,确认状态为enabled - 执行
yum module disable mysql(注意不是reset,disable才彻底解除绑定) - 再运行
yum module list mysql,应显示disabled - 若之后
yum install mysql-community-server报错 “nothing provides mysql-common”,基本就是这步没做
验证源可用性及常见路径陷阱
官方源默认启用 mysql80-community,但有时需要手动切换到 mysql84-community(尤其在较新内核或 OpenSSL 3.x 环境下):
- 编辑
/etc/yum.repos.d/mysql-community.repo - 将
[mysql80-community]下的enabled=1改为0,再把[mysql84-community]的enabled=0改为1 - 保存后运行
yum clean all && yum makecache - 最后测试:
yum --disablerepo="*" --enablerepo="mysql84-community" list available | grep server,应能列出mysql-community-server
注意:/etc/yum.repos.d/ 下若存在多个 MySQL 相关 repo 文件(如 mysql.repo 和 mysql-community.repo),优先以 mysql-community.repo 为准;手工创建的 mysql.repo 若格式不规范(比如缺 gpgcheck=0 或路径写错),会导致 yum 忽略整个源。


















