Ubuntu 22.04 的 apt install mysql-server 默认安装的是 Canonical 维护的 LTS 稳定版(如 8.0.34),而非 Oracle 官网最新版(如 8.0.39);要安装 8.0.39,需手动下载 Oracle 提供的 .deb 包并按顺序安装,再通过 SELECT VERSION() 等方式验证服务端版本。

直接装 mysql-server 不等于装到“最新版”——Ubuntu 22.04 官方源默认提供的是 8.0.33 或 8.0.34(LTS 稳定分支),不是 MySQL 官网当前最新版(如 8.0.39)。要装“最新”,必须绕过 apt 默认行为。
为什么 apt install mysql-server 不是最新版
Ubuntu 的 APT 仓库以稳定性为优先,MySQL 包版本由 Canonical 维护并冻结在某个 8.0.x 小版本。截至 2026 年 6 月,apt show mysql-server 显示的通常是 8.0.34-0ubuntu0.22.04.1 这类版本号,而 Oracle 官网已发布 8.0.39。两者相差多个安全补丁与功能更新(例如 8.0.37 起修复了 CONNECTION_CONTROL 模块的绕过漏洞)。
- 官方源不提供次版本号选择能力,
apt install mysql-server=8.0.39会报错 “Version ‘8.0.39’ not found” - 即使加了
universe或multiverse源,也不会改变主版本锁定逻辑 - 想用
8.0.39,必须手动下载 Oracle 提供的 .deb 包
手动安装 MySQL 8.0.39 社区版(推荐方式)
Oracle 官网提供的 .deb 包兼容 Ubuntu 22.04,且自带依赖检查和 systemd 集成,比源码编译更可控。
- 去 MySQL 官网下载页,选 “Linux - Generic (Debian/Ubuntu)” 分类,下载
mysql-server_8.0.39-1ubuntu22.04_amd64.deb-bundle.tar - 解压后得到多个 .deb 文件,**必须按顺序安装**:
mysql-common_8.0.39-1ubuntu22.04_amd64.deb→mysql-community-client-plugins_8.0.39-1ubuntu22.04_amd64.deb→mysql-community-client-core_8.0.39-1ubuntu22.04_amd64.deb→mysql-community-client_8.0.39-1ubuntu22.04_amd64.deb→mysql-community-server-core_8.0.39-1ubuntu22.04_amd64.deb→mysql-community-server_8.0.39-1ubuntu22.04_amd64.deb - 用
dpkg -i逐个安装;若提示依赖缺失(如libtirpc1),运行sudo apt --fix-broken install自动补全 - 安装完成后,
systemctl start mysql会自动初始化数据目录(首次启动耗时约 20–40 秒)
验证是否真装了 8.0.39
别只信 mysql --version,它可能显示客户端版本而非服务端。真正确认方式是:
- 登录后执行:
SELECT VERSION();—— 返回8.0.39 - 检查二进制文件时间戳:
stat /usr/sbin/mysqld | grep Modify,应接近你下载包的日期 - 查看包来源:
dpkg -l | grep mysql-server应显示8.0.39-1ubuntu22.04,而非0ubuntu0.22.04.1
注意:手动安装后,apt upgrade 不会覆盖它,但后续 apt update 可能提示 “mysql-server 已有新版本可用”——那是 Ubuntu 自己的旧版,忽略即可。如需降级回官方源版本,得先 dpkg -r 手动卸载再 apt install。


















