Ubuntu 22.04 官方源仅提供 MySQL 8.0.x,不包含 8.4 LTS;需通过官方 mysql-apt-config 工具添加源并安装,手动装 deb 易因依赖失败,且配置须禁用 validate_password 和调整 sql_mode 才兼容旧应用。

为什么不能直接 apt install mysql-server 装到 8.4
Ubuntu 22.04 官方源默认只提供 mysql-server 8.0.x(如 8.0.32-0ubuntu0.22.04.2),不包含 8.4 LTS。MySQL 8.4 是官方明确标注的长期支持(LTS)版本,但未被 Ubuntu 自带仓库收录。硬装 deb 包(如知识库中提到的 mysql-server_8.4.8-1ubuntu22.04_amd64.deb)容易因依赖冲突或缺失 libmysqlclient 版本而失败,dpkg -i 后常报 unmet dependencies 错误。
添加 MySQL 官方 APT 源的正确步骤
必须用 MySQL 官方提供的 mysql-apt-config 工具配置源,不能手动编辑 /etc/apt/sources.list —— 官方源地址含架构和发行版代号(如 focal 或 jammy),写错会导致 apt update 报 404。
- 下载最新配置包(截至 2026 年 5 月,推荐
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
安装时会弹出 ncurses 界面,用方向键选中MySQL Server & Cluster→ 回车 → 用空格选中mysql-8.4→ Tab 切到OK确认 - 更新索引:
sudo apt update
成功后应看到类似Hit: ... https://repo.mysql.com/apt/ubuntu jammy InRelease的日志
apt install mysql-server 时的关键参数与陷阱
执行安装前务必确认源已生效:apt-cache policy mysql-server 应显示候选版本为 8.4.x(如 8.4.8-1ubuntu22.04)。若仍显示 8.0,说明源未生效或缓存未刷新。
- 直接运行:
sudo apt install mysql-server
安装过程会自动创建root@localhost用户,并使用auth_socket插件(无密码,依赖系统用户权限) - 不要加
=8.4.8这类精确版本号 —— 官方 deb 包命名中含ubuntu22.04,但apt解析时可能因变体名(如mysql-community-servervsmysql-server)匹配失败,导致E: Version '8.4.8' for 'mysql-server' was not found - 安装完成后立即检查服务状态:
systemctl status mysql
若卡在activating,大概率是/var/lib/mysql权限不对或磁盘空间不足(8.4 初始化比 8.0 更严格)
安装后必须改的两个配置项
MySQL 8.4 默认启用强密码策略和严格 SQL 模式,不调整会导致旧应用连接失败或建表报错。
- 禁用密码强度校验(否则
ALTER USER ... BY '123456'会因太弱被拒):
在/etc/mysql/mysql.conf.d/mysqld.cnf中添加:validate_password=OFF - 放宽 SQL 模式(避免
INSERT INTO t VALUES ()类语句失败):
在同一文件的[mysqld]下添加:sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
注意:不要删掉STRICT_TRANS_TABLES,否则可能掩盖数据截断问题 - 改完重启:
sudo systemctl restart mysql
8.4 的 mysql_native_password 插件默认禁用,远程连接时若用老客户端(如某些 Python MySQL 驱动),必须显式指定认证方式;CREATE USER 时漏写 IDENTIFIED WITH mysql_native_password 就连不上。


















