推荐使用APT仓库安装,因其由Ubuntu和MySQL官方共同维护,自动解决依赖、版本稳定、systemd集成开箱即用;DEB手动安装适用于离线部署或锁定特定补丁版本,Docker适合测试与CI/CD环境。

为什么APT安装是首选
Ubuntu 20.04 官方源里默认提供的 mysql-server 就是 MySQL 8.0.x(比如 8.0.27 或 8.0.34),由 Canonical 和 MySQL 官方共同签名维护,依赖自动解决、升级路径清晰、systemd 集成开箱即用。
你不需要手动凑 DEB 包顺序,也不用担心 libaio1 或 libmecab2 漏装导致 dpkg -i mysql-community-server 报错退出——APT 全包了。
DEB 包手动安装只在这些情况下才值得考虑
- 你需要离线部署,且已有一套验证过的完整 Bundle(含
mysql-common、mysql-client、mysql-community-server、libmysqlclient21等) - 你必须锁定某个特定补丁版本(比如
8.0.29),而该版本尚未进入 Ubuntu 20.04 的focal-updates源 - 你正在复现某次故障,需要完全一致的二进制指纹,不能接受 APT 自动升到小版本最新
注意:手动装时,dpkg -i 顺序错了会卡住(比如先装 mysql-community-server 再装 libmysqlclient21 就会失败),且后续 apt upgrade 可能冲突,得自己 pin 版本。
Docker 方式适合什么场景
它不改宿主机环境,启动快,隔离干净,但有三个硬约束:
– 数据持久化必须显式挂载卷(比如 -v /data/mysql:/var/lib/mysql),否则容器删掉数据就没了
– 默认监听 127.0.0.1:3306,要让宿主机外访问得加 --network host 或映射端口并调 bind-address
– 无法直接用 systemctl start mysql 管理,得记 Docker 命令,CI/CD 流水线里才真正省心
别踩这个坑:混用 APT 和手动 DEB
如果你已经用 sudo apt install mysql-server 装过,又去下载官方 DEB 包强行 dpkg -i,大概率触发 dpkg 状态库冲突,出现:dpkg: error processing archive mysql-community-server_8.0.29-1ubuntu20.04_amd64.deb (--install): trying to overwrite '/etc/mysql/mysql.conf.d/mysqld.cnf', which is also in package mysql-server-8.0
这时候只能 apt purge mysql-server 彻底清干净再重来,配置文件和数据库目录不会自动删除,得手动确认。
sudo mysql_secure_installation —— 这步漏掉,root 账号空密码或允许远程登录,等于把数据库裸奔在公网。


















