mariadb-libs 被 mysql-community-libs-5.7.28-1.el7.x86_64 取代

mysql-community-common(x86-64) >= 5.7.9 被 mysql-community-libs-5.7.28-1.el7.x86_64 需要mariadb-libs 被 mysql-community-libs-5.7.28-1.el7.x86_64 取代

解决办法

这是一个非常经典的 MySQL 安装问题。从你提供的报错信息来看,你正在尝试安装 mysql-community-common-5.7.28,但系统中已经预装了 mariadb-libs-5.5.68。这两个包都包含了 /usr/share/mysql/ 目录下的字符集和错误消息文件,导致 RPM 包管理器检测到文件冲突并拒绝了安装。

以下是安全、合规的解决步骤:

1. 确认冲突包

首先,查询系统中存在的 MariaDB 相关包:

bash 复制代码
rpm -qa | grep -i mariadb

通常会看到类似 mariadb-libs-5.5.68-1.el7.x86_64 的输出。

2. 卸载冲突包(推荐)

由于 CentOS/RHEL 系统默认预装的 mariadb-libs 被部分系统组件依赖,直接卸载可能会报依赖失败。此时可以使用 --nodeps 参数强制卸载(这不会影响数据,但需确保没有关键业务正在使用 MariaDB):

bash 复制代码
sudo rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

(注:请将上述命令中的版本号替换为你第一步实际查出来的包名)

或者,你也可以尝试使用 yum 进行常规卸载,它会自动处理依赖关系:

bash 复制代码
sudo yum remove mariadb-libs -y

3. 重新安装 MySQL

冲突包卸载后,再次执行你的 MySQL 安装命令即可顺利通过:

bash 复制代码
sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm

⚠️ 强烈警告:不要使用 --force 或 --nodeps 强行安装

在遇到此报错时,有些教程会建议使用 rpm -ivh --force 或 --nodeps 强行覆盖安装。请尽量避免这种操作,原因如下:

  • 服务无法启动 :强行覆盖不会解除 mariadb-libs 的底层动态链接库(如 libmysqlclient.so.18),可能导致 mysqld 启动时发生段错误(Segmentation Fault)。
  • 字符集异常:覆盖安装会导致 XML 字符集文件版本错乱,客户端连接后可能出现字符集识别失败的问题。
  • 包管理混乱 :这会破坏 RPM 数据库的元数据,导致后续执行 yum update 或自动化运维工具校验时报错。

按照上述"先卸载 MariaDB 库,再安装 MySQL"的标准流程操作,是最稳妥且符合生产环境规范的做法。


需要我帮你写一份完整的 MySQL 5.7 安装和初始化脚本吗?包括下载依赖、安装、初始化数据库和启动服务的完整流程。

相关推荐
小白男神4 天前
MySQL进阶学习四(存储过程、游标、触发器)
mysql
这个DBA有点耶4 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G4 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备4 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远4 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
kybs19914 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
2601_962218614 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
程序猿_极客4 天前
【免费】分享一套优质的基于SSM的校园失物招领系统的设计与实现,源码+文档+视频详解(讲解)
java·mysql·ssm·课程设计·失物招领系统
张洛闻Eren4 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
于平安4 天前
MySQL-触发器
数据库·mysql