mysql默认安装最新ga版(如8.0),项目需固定5.7时须禁用mysql80-community、启用mysql57-community仓库,清理缓存后安装并验证版本。

mysql-community-server 默认会装最新 GA 版本,但实际项目常需固定版本(比如 5.7),直接 yum install mysql-community-server 很可能装到 8.0 或更新版,导致兼容性问题。
确认当前启用的 MySQL 仓库版本
执行 yum repolist all | grep mysql,输出中带 enabled 的那行才是当前生效的仓库。常见情况是:mysql80-community/x86_64 已启用,而 mysql57-community/x86_64 显示 disabled —— 这就是为什么装出来是 8.0。
切换到 MySQL 5.7 仓库
必须显式禁用旧版本、启用目标版本,不能只改一个:
sudo yum-config-manager --disable mysql80-communitysudo yum-config-manager --enable mysql57-community
注意:yum-config-manager 来自 yum-utils 包,若提示命令未找到,先运行 sudo yum install -y yum-utils。
再执行一次 yum repolist enabled | grep mysql,确保只有 mysql57-community 在列表里。
安装前清理缓存并验证可用包
YUM 缓存可能残留旧仓库元数据,导致仍尝试拉取 8.0 的包:
sudo yum clean allsudo yum makecache-
yum list available mysql-community-server --showduplicates | grep 5.7—— 应能看到类似mysql-community-server.x86_64 5.7.40-1.el7的条目
如果 --showduplicates 没输出,说明仓库没切成功,或系统版本不匹配(例如在 CentOS 8 上用了 EL7 的 repo 包)。
安装并验证版本
此时再执行安装命令:
sudo yum install -y mysql-community-server
安装完成后立即验证:
-
rpm -qa | grep mysql-community-server—— 看包名是否含5.7 -
mysqld --version—— 输出应为mysqld Ver 5.7.xx
别跳过这步:有些环境即使仓库切换了,yum install 仍可能因依赖冲突回退到其他版本,尤其是系统里曾装过 MariaDB 或第三方 MySQL 包时。
真正容易被忽略的是:MySQL YUM 仓库 RPM 包名本身已暗示默认启用系列(如 mysql80-community-release 默认开 8.0;mysql57-community-release 默认开 5.7),但很多人下载了 mysql80 包却想装 5.7,硬切仓库——不如直接下载对应版本的 repo 包更稳妥。











