直接用 dnf install mysql-community-server 可安装 MySQL 8.4 LTS,但须确保 mysql-8.4-lts-community 仓库已启用且系统 mysql 模块被禁用,否则可能安装失败或降级为 MariaDB/MySQL 8.0;安装后需 systemctl start mysqld 初始化、查日志获取临时密码、首次登录强制修改 root 密码。

直接用 dnf install mysql-community-server 就能装上 MySQL 8.4 LTS,前提是系统已正确启用 mysql-8.4-lts-community 子仓库——这是默认行为,但容易被手动改掉或被系统模块冲突覆盖。
确认 MySQL 8.4 LTS 仓库已启用
MySQL YUM 仓库里多个版本共存,默认只开 mysql-8.4-lts-community;如果装出来是 8.0 或报错找不到包,大概率是它被禁用了。
- 运行
dnf repolist enabled | grep mysql,输出中必须包含mysql-8.4-lts-community - 若没看到,执行:
dnf config-manager --enable mysql-8.4-lts-community(RHEL/CentOS 9+ 或 AlmaLinux/Rocky 9+) - 同时检查是否误启用了旧系列:运行
dnf repolist all | grep -E "mysql-8\.0|mysql80",确保它们的enabled=0 - 注意:某些系统(如 CentOS Stream 9)可能默认禁用所有 MySQL 仓库,需显式启用
必须先禁用系统自带的 mysql 模块
RHEL/CentOS 9+ 自带 mysql DNF 模块,它会和 MySQL 官方仓库冲突,导致安装失败或降级到系统旧版(如 mariadb 或 8.0)。
- 运行
dnf module list mysql查看当前状态,常见输出为[d] disabled或[e] enabled - 强制禁用:
dnf module reset mysql,再执行dnf module disable mysql - 这步漏掉,
dnf install mysql-community-server可能静默安装 mariadb 或跳过官方包
安装与首次启动的关键细节
装完不等于能用,几个硬性步骤绕不开,且顺序不能错。
- 安装命令是
dnf install mysql-community-server(不是mysql-server,后者在部分系统指向 mariadb) - 启动前先初始化:
systemctl start mysqld会自动触发初始化,生成/var/lib/mysql和临时密码 - 临时密码藏在日志里:
grep "temporary password" /var/log/mysqld.log,别用空密码试登录 - 首次登录后必须改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourPass123!';,否则后续操作全被拒绝 -
mysqld服务名固定,不是mysql或mysqld.service—— 后者虽能通,但 systemd 单元名就是mysqld
最常被忽略的是模块禁用和仓库启用状态校验——哪怕你昨天刚装过,一次 dnf update 或第三方 repo 导入都可能悄悄把它关掉。每次重装前,先跑一遍 dnf repolist enabled | grep mysql 和 dnf module list mysql,比重装三次还省时间。

















