银河麒麟 V10 默认不支持 APT 安装 MySQL 8.0,因其基于 CentOS/RHEL 内核,使用 yum/dnf 包管理器和 RPM 包格式,而非 Debian/Ubuntu 的 APT/.deb 体系;强行使用 apt 会报“command not found”或“unable to locate package”,仅极少数非标定制版可能兼容,但官方无 MySQL 8.0 的 APT 支持。

银河麒麟 V10 默认不支持 APT 安装 MySQL 8.0,因为其主流发行版(如 Kylin-Server-V10-SP3、Kylin-Desktop-V10-SP1)基于 CentOS/RHEL 内核,使用的是 yum 或 dnf 包管理器,而非 Debian/Ubuntu 的 apt。强行尝试 apt install mysql-server 会报错 “Command 'apt' not found”,或提示仓库未配置、无法定位软件包。
只有极少数定制版的银河麒麟(如部分早期桌面版或中标麒麟衍生版)可能兼容 Debian 源,但这类系统在生产环境中占比不足 5%,且官方不提供 MySQL 8.0 的 APT 二进制包支持。
为什么不能直接用 apt install mysql-server?
APT 是 Debian/Ubuntu 系统的包管理工具,依赖 .deb 包格式和 /etc/apt/sources.list 中的 Debian 兼容源。银河麒麟 V10 的软件包体系为 RPM,底层是 rpm + dnf,其仓库中所有官方 MySQL 相关包均为 .rpm 格式(如 mysql-community-server-8.0.45-1.el7.x86_64.rpm),不存在对应 apt 可解析的 mysql-server 包。
常见错误现象包括:
E: Unable to locate package mysql-server-
bash: apt: command not found(系统根本没装apt) - 手动添加 Ubuntu 源后出现
dpkg: error processing archive或签名验证失败
确认你的银河麒麟 V10 是否真有 apt 支持
先执行以下命令判断系统真实类型:
cat /etc/os-release | grep -E "ID|VERSION_ID|PLATFORM_ID"
重点关注这几项输出:
- 若
ID="kylin"且PLATFORM_ID="platform:el8"或"platform:el7"→ 属于 RHEL 系分支,无 apt - 若
ID="debian"或ID_LIKE="debian"→ 才可能支持 apt(极罕见,需自行验证)
再检查是否安装了 apt 工具:
which apt apt-get
返回为空即说明未安装,不可强装 apt 来“模拟”Debian 行为——这会导致系统包管理混乱、后续升级失败。
替代方案:用 dnf/yum 安装 MySQL 8.0(推荐)
银河麒麟 V10 原生支持 dnf(V10 SP3+)或 yum(SP1/SP2),这是正确路径。操作要点如下:
- 必须先卸载预装的
mariadb-libs,否则dnf install mysql-community-server会因冲突失败 - 推荐使用离线 RPM Bundle(如
mysql-8.0.45-1.el7.x86_64.rpm-bundle.tar),避免网络不可靠导致依赖中断 - 安装顺序不能错:
mysql-community-common→mysql-community-libs→mysql-community-client→mysql-community-server - 首次启动前需初始化:
mysqld --initialize --user=mysql --datadir=/var/lib/mysql,否则systemctl start mysqld会静默失败
示例关键命令:
sudo rpm -e --nodeps mariadb-libs<br>sudo tar -xf mysql-8.0.45-1.el7.x86_64.rpm-bundle.tar<br>sudo rpm -ivh mysql-community-common-8.0.45-1.el7.x86_64.rpm<br>sudo rpm -ivh mysql-community-libs-8.0.45-1.el7.x86_64.rpm<br>sudo rpm -ivh mysql-community-client-8.0.45-1.el7.x86_64.rpm<br>sudo rpm -ivh mysql-community-server-8.0.45-1.el7.x86_64.rpm<br>sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql<br>sudo systemctl enable mysqld && sudo systemctl start mysqld
容易被忽略的关键点
很多人卡在 systemctl start mysqld 启动失败,却反复重装 RPM,其实问题常出在:
-
/var/lib/mysql目录残留旧数据(尤其之前装过 MariaDB),导致初始化跳过或权限混乱 - 未设置 SELinux 状态(
setenforce 0)且配置文件里用了非标准路径(如datadir=/opt/mysql/data),触发上下文拒绝 -
lower_case_table_names=1在 MySQL 8.0 中必须在初始化前设定,启动后再改会报错 - 防火墙未放行 3306 端口,导致远程连接超时,误判为服务未启动
这些细节比“用什么包管理器”更影响成败。别急着敲 apt,先看清楚自己系统的底子。


















