为何安装MariaDB 5.5.52 RPM包却实际安装了5.5.59版本?
为什么手动安装MariaDB 5.5.52 RPM包后,实际却变成了5.5.59?
这种情况我帮朋友排查过好几次,核心原因都是包管理器的自动升级逻辑或者源配置冲突导致的,具体可以拆成这几个场景:
1. 系统依赖包被自动升级
MariaDB的安装包依赖很多基础组件(比如mariadb-libs、mariadb-common),如果你的新服务器上这些依赖包已经是5.5.59版本(可能是系统默认源或者之前配置的源带来的),当你安装本地的5.5.52主包时,包管理器(比如yum/dnf)会认为高版本的依赖更兼容,自动把主包也替换成5.5.59版本来匹配依赖。
你可以回忆下安装时的输出,如果有类似这样的行,就说明是这个问题:
Updating: mariadb-server-5.5.59-1.el7.x86_64
2. 服务器配置了MariaDB官方/第三方源
如果新服务器已经添加了MariaDB的官方yum源,或者其他提供MariaDB包的第三方源,这些源里的包版本是5.5.59,那么当你执行yum install ./mariadb-server-5.5.52-*.rpm时,包管理器会优先从源里拉取最新版本的包,直接忽略你本地的旧RPM文件。
你可以用这条命令检查是否有启用的MariaDB相关源:
yum repolist enabled | grep -i mariadb
3. 本地下载的RPM包不完整
如果你只下载了mariadb-server的RPM包,没有下载对应的mariadb-client、mariadb-libs、mariadb-common等配套包,安装时包管理器会自动从已配置的源中下载匹配的高版本组件,最终导致整个MariaDB环境的版本变成5.5.59。
解决方法参考
- 临时禁用冲突源:安装时指定禁用MariaDB相关源,强制使用本地包:
yum install --disablerepo=mariadb ./mariadb-server-5.5.52-*.rpm ./mariadb-client-5.5.52-*.rpm ./mariadb-libs-5.5.52-*.rpm - 下载完整的RPM包集合:去MariaDB归档服务器下载5.5.52版本的所有相关RPM包,放到同一个目录后批量安装。
- 安装后验证版本:执行以下命令确认最终版本:
mysql -V
内容的提问来源于stack exchange,提问作者William




