ubuntu官方源中mysql-server包由canonical维护、滞后于oracle官方发布,且不支持指定次版本号安装;必须添加mysql官方apt仓库才能精准安装8.0.39/8.0.40等最新稳定版。

直接用 apt install mysql-server 能装,但默认装的是 Ubuntu 自带源里的版本(通常是 8.0.33 或更早),不是 MySQL 官方最新版;想装 8.0.39、8.0.40 这类刚发布的稳定版,必须先配置官方 APT 仓库。
为什么不能跳过官方仓库直接 apt install?
Ubuntu 官方源里的 mysql-server 包由 Canonical 维护,不是 Oracle 官方构建。它会滞后数周甚至数月,且不包含某些关键更新(比如 8.0.37 修复的 mysqldump --set-gtid-purged=OFF 崩溃问题)。更重要的是:官方仓库提供 mysql-server-8.0、mysql-client-8.0 等精确版本包名,而 Ubuntu 源里只有泛化的 mysql-server,无法指定次版本号。
添加 MySQL 官方 APT 仓库的实操要点
执行以下命令前,确保已安装 curl 或 wget:
下载并安装仓库配置包(以当前最新版 mysql-apt-config_0.8.29-1_all.deb 为例):
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb
安装时会弹出交互式菜单,注意以下三点:
- 选中
MySQL Server & Cluster(空格切换),按Tab移到OK回车 - 若需指定小版本(如只要 8.0.39),在子菜单中选择
mysql-8.0后,再选Yes进入版本锁定;否则默认接收所有 8.0.x 更新 - 不要勾选
MySQL Router或MySQL Workbench(除非真需要),它们会引入额外依赖和冲突风险
完成后运行:
sudo apt update
此时 apt list -a mysql-server 应能列出类似 mysql-server/jammy,now 8.0.39-1ubuntu22.04_amd64 的条目。
安装指定 8.0.x 版本的正确命令
别用 sudo apt install mysql-server —— 它会装仓库里“最高可用”版本,未必是你想要的。
要精准安装 8.0.39,请用:
sudo apt install mysql-server=8.0.39-1ubuntu22.04
关键点:
- 版本字符串必须完全匹配
apt list输出中的8.0.39-1ubuntu22.04,少一个字符都会报E: Version '...' for 'mysql-server' was not found - 如果提示依赖冲突(常见于同时装过 Ubuntu 源版 MySQL),先执行
sudo apt remove --purge mysql-server mysql-client mysql-common并清空/etc/mysql和/var/lib/mysql - 安装后立即锁版本,防止下次
apt upgrade覆盖:sudo apt-mark hold mysql-server mysql-client
安装后必须做的三件事
官方仓库版不会自动运行 mysql_secure_installation,也不会帮你改认证插件,这些得手动补上:
- 启动服务:
sudo systemctl start mysql;设为开机自启:sudo systemctl enable mysql - 首次登录用
sudo mysql -u root(无密码,走 socket 认证),然后立刻执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'your_strong_password'; - 远程访问需两步:修改
/etc/mysql/mysql.conf.d/mysqld.cnf中的bind-address = 0.0.0.0,再执行CREATE USER 'root'@'%' IDENTIFIED BY 'your_strong_password'; GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
官方仓库的包管理干净,但配置自由度高,意味着每个版本的小差异(比如 8.0.33 默认禁用 local_infile,8.0.39 改为 warn 级别)都得自己查变更日志确认,不能假定行为一致。











