宝塔面板在 Ubuntu 上装不上 MySQL:日志显示"执行成功",软件却没装上

admin admin
2026-10-22 发布 | 2613 字 | 预计 7 分钟 | 4 次阅读 | 0 条评论

云服务器运维实战系列 · 第 3 篇(共 7 篇)

宝塔面板在 Ubuntu 上装不上 MySQL:日志显示"执行成功",软件却没装上

在宝塔面板里点"安装 MySQL 8.0",任务跑了一会儿,最后提示执行成功。可回到软件列表,MySQL 还是未安装,网站连不上数据库。

更怪的是,日志里反复刷 cat: /etc/redhat-release: No such file or directory,然后照样来一句"命令已执行"。这篇讲清楚这是怎么回事,以及在 ARM + Ubuntu 上怎么把 MySQL 真正装上。

先看现象

安装日志的关键片段:

Text
Text
正在选择下载节点...
--2026-10-02 ... https://cf1-node.aapanel.com/install/0/mysql.sh
...
cat: /etc/redhat-release: No such file or directory
cat: /etc/redhat-release: No such file or directory
|-Successify --- 命令已执行! ---

脚本最后报"成功",但:

  • 软件商店 / 已安装列表里没有 MySQL;

  • mysql 命令不存在或服务起不来;

  • 网站报数据库连接失败。

任务列表里这条记录往往标着"安装失败",耗时只有几秒到十几秒。

脚本显示执行成功,不等于 MySQL 安装完成。
脚本显示执行成功,不等于 MySQL 安装完成。

第一步:确认系统和架构

那句 cat: /etc/redhat-release 是线索。宝塔安装脚本里有一段要判断系统版本,它习惯去读红帽系(CentOS/RHEL)的 /etc/redhat-release。在 Debian/Ubuntu 上这个文件不存在,于是报错——脚本对 Debian/Ubuntu 的适配做得不完整。

先确认自己的系统:

Bash
Bash
cat /etc/os-release
# 例如:Ubuntu 22.04.3 LTS

uname -m
# aarch64 表示 ARM;x86_64 表示常见的 Intel/AMD

我这台是 Ubuntu 22.04、aarch64(甲骨文免费 Ampere)。

第二步:看真正的安装日志

面板消息盒子里那句"命令已执行"只是脚本跑完了,不代表装成功。要点"详情"看完整输出,或者看面板的安装日志文件,重点找:

  • 有没有 ERROR、make: *** Error、No package、404 Not Found;

  • 是"下载二进制包"还是"开始源码编译"。

宝塔对主流 x86 系统,通常直接下载预编译好的包,解压即用,几分钟搞定。而在 ARM 上,情况不一样。

根因:架构 + 脚本两个问题叠在一起

1. 没有匹配架构的预编译包。 宝塔的预编译包主要面向 x86_64。到了 aarch64,下载节点找不到对应包,脚本往往回退成"源码编译"——日志里会刷大量 Building CXX object ...、[xx%]。

ARM 缺少预编译包,可能回退到源码编译。
ARM 缺少预编译包,可能回退到源码编译。

2. 源码编译 MySQL 极慢且容易失败。 MySQL 是几百万行级别的 C++ 工程,免费 ARM 实例上编译要很久,内存、依赖(cmake、gcc、各种 dev 库)稍有不足就中断。我这边编译卡在 20% 多反复失败,面板最终判定安装失败。

3. 脚本对 Ubuntu 适配不完整。 反复读 /etc/redhat-release 就是表现之一。它按红帽系的路径和判断逻辑走,在 Ubuntu 上会留下各种无效报错。

所以这不是"系统不干净",而是架构和脚本适配问题。换个角度:面板里点安装,本质也是执行它下载的 shell 脚本,脚本没处理好 ARM + Ubuntu,再点几次结果一样。

怎么真正装上

在 ARM + Ubuntu 上,最省心的是直接用 Ubuntu 官方源装 MySQL,不依赖宝塔的预编译包:

Bash
Bash
sudo apt update
sudo apt install -y mysql-server

Ubuntu 22.04 官方源里的 MySQL 是匹配 aarch64 的,apt 会自动装好服务并设置开机自启。装完验证:

使用 Ubuntu ARM 系统源安装并验证服务。
使用 Ubuntu ARM 系统源安装并验证服务。
Bash
Bash
systemctl status mysql --no-pager
sudo mysql -e "SELECT VERSION();"

需要注意:

  • Ubuntu 源里的 MySQL 默认用 auth_socket 插件,root 在本机可以直接 sudo mysql 免密登录,设置密码和远程访问要另外处理(数据迁移那篇会讲);

  • 版本可能不是宝塔默认的 8.0 某个小版本,但同属 8.0,数据格式兼容;

  • 装完宝塔面板一般能识别到系统里的 MySQL;若软件商店仍显示未安装,可在面板"数据库"里手动连接,或重启面板。

如果一定要用宝塔管理的那份,也可以在面板里选"编译安装"并耐心等它编完(可能数十分钟到数小时),期间别中断;但既然官方源有现成的 ARM 包,没必要硬等编译。

顺带说一句 PHP

同一台机器上,PHP 8.2 用面板编译也失败过,报错指向依赖库架构不对(file in wrong format);而 PHP 7.4 能装上。这同样是 ARM 适配问题,我单独写了一篇。遇到"某个版本死活装不上",先换个版本或换 apt 源,通常比反复点安装更有效。

排查顺序小结

  1. cat /etc/os-release、uname -m,确认是 Ubuntu + ARM;

  2. 看完整安装日志,确认是"找不到预编译包 → 回退源码编译 → 编译失败";

  3. 不死磕面板,改用 sudo apt install mysql-server 装官方 ARM 包;

  4. 装好后再处理 root 密码、数据导入和面板识别。

全文完
全站文章均为原创,转载请保留署名和出处。
阅读 4 次