MySQL 的安装部署,说简单也简单,包管理器敲两行命令就装完了;说复杂也复杂,我在工作中见过太多"装完连不上""跑两天宕机""字符集乱成一锅粥"的案例。最近又帮人收拾了一台 Ubuntu 上用 root 连不上 MySQL 的烂摊子,所以索性把这几年折腾 MySQL 安装部署的经验系统整理一遍,从版本选型、多平台安装、初始化配置,到装完之后的常见故障排查,一次讲透。文章覆盖 Windows、Linux、Docker 三种主流部署方式,适合刚入门的开发者,也适合要自己搭服务器环境、或者部署 Dify、Nacos、Jenkins 这类系统时需要先把 MySQL 准备好的运维同学。
1. 版本选择与部署形态:先想清楚再动手
很多人一上来就 apt install mysql-server,装完才发现版本不对、认证方式不兼容、包管理器和官方源行为不一样,然后开始漫长的踩坑。这一步看似无关紧要,实际上决定了后面所有操作的走向。
1.1 8.0 和 5.7 到底差在哪
截至 2025 年,还在线上跑的主流版本就两个:5.7 和 8.0。新项目我无脑推荐 8.0,但老项目迁移要特别谨慎,很多差异会直接影响应用层代码。
8.0 的默认认证插件是 caching_sha2_password,而 5.7 是 mysql_native_password。这个差异非常关键,因为它直接导致一个问题:老版本的客户端、图形工具(比如旧版 Navicat)、部分编程语言的驱动连接 8.0 数据库时会报 Authentication plugin 'caching_sha2_password' cannot be loaded 或者类似协议不支持的错误。热搜词里那条 firedac phys mysql client does not support authentication protocol requested,本质就是 Delphi/FireDAC 客户端不认识 8.0 的新认证协议。这不是 MySQL 坏了,是客户端太老。
字符集方面,8.0 默认 utf8mb4 且默认排序规则是 utf8mb4_0900_ai_ci,对中文和 emoji 的支持很友好;5.7 默认还是 latin1,装完往往还要手动改配置。另外 8.0 自带了窗口函数、CTE 公共表表达式、NOWAIT 和 SKIP LOCKED 这类特性,写报表 SQL 会舒服很多。
功能上还有一些细节要注意:8.0 的 int(11) 显示宽度语法已经被移除,GROUP BY 不再隐式排序,WITH GRANT OPTION 的授权方式变化,query cache 被彻底删除。如果你是从 5.7 升 8.0,SQL 里有依赖这些旧行为的代码,升级完行为会变。
1.2 用官方源、发行版源,还是别用包管理器
软件包来源是另一个容易忽略的坑。Debian/Ubuntu 自带的 mysql-server 包其实是 MySQL 8.0 的发行版分支,Red Hat 系默认的 mariadb-server 则是 MariaDB 而非 MySQL。MariaDB 虽然兼容 MySQL 大部分协议,但在权限表结构、performance_schema、部分 SQL 行为上已经分叉,如果是为了跑某个依赖具体 MySQL 版本的商业软件,建议还是用官方源或直接下载官方二进制包。
| 部署方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| Windows 安装包 | 本地开发、测试环境 | 图形化界面,装完即用 | 不适合生产,服务管理方式特殊 |
| Linux apt/yum | 生产环境常规部署 | 命令简单,自动处理依赖 | 发行版源版本可能滞后 |
| 官方 tar.gz 包 | 内网离线、特殊系统 | 版本可控,不依赖仓库 | 需要手动初始化数据目录 |
| Docker 容器 | 开发、测试、微服务 | 隔离干净,环境一致性强 | 数据持久化和网络需要额外配置 |
| 源码编译 | 需要定制编译参数 | 完全可定制 | 编译时间长,升级维护成本高 |
如果你在统信 UOS 这类国产桌面系统或者 CentOS 无图形界面的服务器上装,tar.gz 官方二进制包往往比源码编译省事得多,因为源码编译对依赖库版本要求苛刻,动不动就报 cmake 或 boost 版本不满足。官方二进制包自带 lib,只要系统 glibc 版本不太老,基本能跑。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 三条主流安装路径的完整过程
这部分把 Windows、Linux、Docker 三种安装过程完整走一遍。每个平台我都踩过坑,细节会写得比较啰嗦,但都是有用的经验。
2.1 Windows:用 MSI 安装,而不是 ZIP 解压
Windows 上安装 MySQL 有两个主要路径:MSI 安装包和 ZIP 解压包。我建议新手上手直接用 MSI。
从官网下载页选择 MySQL Installer for Windows,注意区分在线安装版和离线安装版。离线版体积大,但一次下载完,内网或者网速不稳的时候更可靠。安装时选 Server only,默认的 Developer Default 会带你装一堆不一定用上的组件,比如 MySQL Router、Connector 全家桶,浪费磁盘也拖慢安装速度。
安装过程中的几个关键选项:
- 端口保持 3306,除非你有明确的冲突原因
Authentication Method选择页面,新手直接选Use Strong Password Encryption,也就是 8.0 默认的caching_sha2_password。只有当你确实需要兼容老客户端时,才选下面的Use Legacy Authentication,但这个会让新装的服务强制切回mysql_native_password- Root 密码务必记住,后面 `mysql_secure_ins
