当前位置: 首页
数据库
Ubuntu22.04安装MySQL5.7依赖包缺失常见原因解析

Ubuntu22.04安装MySQL5.7依赖包缺失常见原因解析

热心网友 时间:2026-07-11
转载

Ubuntu22 04系统由于移除了libtinfo5、libssl1 1、libncurses5等旧版本库,导致MySQL5 7无法安装或启动,因为依赖缺失。用户必须手动添加universe软件源,然后安装这些缺失的库,再按照mysql-common、mysql-client、mysql-server的顺序安装MySQL5 7的deb包,否则安装或启动过程

直接给出结论:Ubuntu 22.04 移除了 MySQL 5.7 所必需的几个旧版运行库,特别是 libtinfo5libssl1.1libncurses5。这些库在 Ubuntu 18.04 和 20.04 中原是预置的,但升级到 22.04 后已被彻底移除。

为什么MySQL 5.7在Ubuntu 22.04上安装时提示依赖包缺失?

Ubuntu 22.04 中缺失了哪些关键依赖库?

MySQL 5.7 的二进制安装包是在较旧环境下编译的,所依赖的 glibc、OpenSSL、ncurses 等版本均较为陈旧。Ubuntu 22.04 升级系统库后,直接移除了这些兼容层。具体缺失的库包括:

  • libtinfo5:系统中仅提供 libtinfo6,但 MySQL 5.7 的二进制文件硬编码了 libtinfo.so.5
  • libssl1.1:22.04 默认仅安装 libssl3,而 MySQL 5.7 无法识别 OpenSSL 3.0 的接口。
  • libncurses5(即 libncurses.so.5):同样被 libncurses6 替代,但 mysqld 启动时一定会因此报错。
  • libmecab2:MySQL 的部分 deb 包(如 mysql-community-server)在依赖中声明了该库,而 22.04 仓库中仅有 libmecab5

使用 dpkg -i 安装失败时的典型错误信息

当你用 dpkg -i 命令安装 MySQL 5.7 的 deb 包时,会遇到的错误提示通常离不开以下几个关键词:

  • dpkg: error processing package mysql-community-server (--install): dependency problems
  • error while loading shared libraries: libtinfo.so.5: cannot open shared object file
  • error while loading shared libraries: libncurses.so.5: cannot open shared object file
  • The following packages ha ve unmet dependencies: mysql-server : Depends: lib...

这些错误信息已经明确指出了问题所在——并非操作步骤有误,而是系统中根本不存在这些库文件。你只需执行 apt list --installed | grep tinfo,很可能返回的结果就是空,这是最直接的证据。

为什么 apt install mysql-server=5.7* 也无法成功?

即使你添加了 MySQL 官方 APT 源并指定了版本号,Ubuntu 22.04 的 apt 包解析器也可能直接拒绝执行。通常你会遇到以下几种情况:

  • 执行 sudo apt install mysql-server=5.7.* 后,系统提示 “but libssl1.1 is not installable”。
  • 跳过 mysql-server,只安装了 mysql-clientmysql-common
  • sudo apt --fix-broken install 修复依赖时,卡在 “trying to overwrite …” 等文件冲突上。

问题的根源在于:APT 的默认策略禁止混用跨发行版的二进制依赖。而 MySQL 5.7 的官方 deb 包当初是为 Ubuntu 18.04 构建的,在 22.04 环境下,APT 的判定规则直接将其拦截了下来。

真正可行的依赖补齐方案

因此,不要指望 apt install 能帮你一键解决所有依赖问题。核心策略是:手动补齐缺失的底层库,并且安装顺序不能出错。

  • 第一步:先添加 Ubuntu 22.04 的 universe 源。由于 libtinfo5 已从 22.04 的主源中移除,需要手动拉取回来:
    sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ jammy main universe"
  • 第二步:更新源之后,安装三个最关键的缺失包:
    sudo apt install libtinfo5 libssl1.1 libncurses5
  • 第三步:单独安装 libmecab2。如果安装 MySQL 的 deb 包时报出该依赖错误,则从 jammy 源下载 deb 文件,用 dpkg -i 手动安装:
    sudo apt install libmecab2
  • 最后:用 dpkg -i 依次安装 MySQL 的 mysql-commonmysql-community-server 包。安装顺序切勿颠倒。

根据实际踩坑经验,如果遗漏了其中任何一个依赖库,mysqld 很可能在启动阶段直接崩溃,而非在安装阶段报错。这一点尤其容易被忽略,需要特别警惕。

来源:https://www.php.cn/faq/2799936.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
SQL中HAVING子句性能有时优于WHERE子句的深度原因解析

SQL中HAVING子句性能有时优于WHERE子句的深度原因解析

先抛个结论,帮大家省点纠结的时间:HA VING 真的从来就不比 WHERE 性能更好。江湖上流传的“HA VING 更快”,大多是拿错了对比样本,或者是被缓存、数据量这些小细节晃了一下眼。问题的根源其实就一句话:混淆了“执行阶段”和“数据量”这两个完全不同的概念。把它们的先后顺序和各自能干的事儿理

时间:2026-07-11 07:02
SQL开窗函数计算分组内占比的详细教程

SQL开窗函数计算分组内占比的详细教程

开窗函数这个话题,其实最核心的价值就在于它能让我们在保留全部明细数据的同时,完成复杂的聚合计算。比如,要算每个产品在其所在分类中的销售占比,这在报表分析里太常用了。如果用传统GROUP BY再加JOIN回去,SQL写得啰嗦不说,性能也糟糕。 计算分组内占比的核心逻辑 说白了就是:用当前行的值,除以它

时间:2026-07-11 07:01
移动端App接口Token未校验导致SQL注入的解决方案

移动端App接口Token未校验导致SQL注入的解决方案

先纠正一个常见误解:Token未校验本身并不会直接导致SQL注入——它只是一个身份凭证,不是SQL的输入源。真正的问题出在另外一条链路上:攻击者利用未校验的Token轻松绕过鉴权,然后塞进恶意参数(比如 user_id、keyword),这些参数再被拼接到SQL中执行,这才是灾难的开端。 所以修复的

时间:2026-07-11 07:01
Navicat还原后中文字符显示问号的解决方法

Navicat还原后中文字符显示问号的解决方法

说实话,遇到Navicat还原后中文字符全部变成问号的情况,大多数用户的第一反应往往是备份文件损坏了。但真相其实很简单——问题不在文件本身,而是Navicat在还原过程中跳过了字符集协商环节,直接将utf8mb4的字节按照latin1或gbk编码“硬解”写入。换句话说,它根本没有询问数据库“你使用的

时间:2026-07-11 07:01
Redis集群从节点频繁掉线检查MTU与心跳包大小

Redis集群从节点频繁掉线检查MTU与心跳包大小

揭示一个容易被忽视的问题:Redis集群中从节点频繁掉线,绝大多数情况并非配置错误,而是网络层默默出现丢包——尤其是MTU参数不匹配时,心跳包被迫分片甚至直接被截断。 先说核心判断:MTU不一致确实会导致Redis从节点掉线,这听起来有些反直觉,但却是真实的线上踩坑经验。心跳包(PING PONG)

时间:2026-07-11 07:01
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜