mysql安装时如何选择版本_mysql版本选择建议

来源:这里教程网 时间:2026-02-28 20:47:34 作者:

MySQL 安装时选错版本,轻则驱动不兼容、语法报错,重则应用连不上数据库或升级卡死——关键不是“最新”,而是“匹配”。

看应用框架和驱动支持的 MySQL 版本范围

很多老项目用的是 Spring Boot 2.3.x 或 MyBatis 3.4.x,它们默认适配的

mysql-connector-java
8.0.22 以下版本,对 MySQL 8.4+ 的默认认证插件
caching_sha2_password
支持不稳,连接会直接抛
Public Key Retrieval is not allowed
Authentication plugin 'caching_sha2_password' cannot be loaded

Spring Boot 2.2–2.4:建议搭配 MySQL 5.7 或 8.0.11–8.0.28 Spring Boot 3.x / Jakarta EE 9+:可放心用 MySQL 8.0.33+ 或 8.4.x(需确认
mysql-connector-j
≥ 8.2.0)
Django 4.2+、Rails 7.1+:已原生支持 MySQL 8.4,默认字符集
utf8mb4_0900_as_cs
也没问题

别盲目上 MySQL 8.4,先查清你依赖的中间件是否跟得上

MySQL 8.4 是 2024 年 7 月刚 GA 的版本,改动不小:默认排序规则换成

utf8mb4_0900_as_cs
GROUP BY
语义更严格,
JSON_TABLE()
成为内置函数,但像 ProxySQL 2.5.3、MaxScale 2.5.16 这类代理层尚未完全适配其新协议字段;Percona Toolkit 3.5.4 对 8.4 的
INFORMATION_SCHEMA
变更也有兼容性问题。

生产环境稳妥起见,优先选
8.0.33
(LTS 长期支持版,官方维护到 2026 年 10 月)
测试/新项目想尝鲜 8.4,务必同步升级
mysql-client
、备份工具(如 mydumper ≥ 0.13.0)、监控插件(如 Prometheus mysqld_exporter ≥ 0.15.0)
用 Docker 部署?镜像标签别只写
mysql:latest
——它现在指向 8.4,应明确指定
mysql:8.0
mysql:8.0.33

Windows 上安装 MySQL 5.7 要特别注意 VC++ 运行库依赖

MySQL 5.7.31 之后的 MSI 安装包不再自带 VC++ 2013 运行库,而 Windows Server 2012 R2 / Win10 旧系统默认没有预装。安装后服务启动失败,日志里只显示

System error 1067
,实际是
msvcr120.dll
找不到。

手动下载安装
Microsoft Visual C++ 2013 Redistributable (x64)
(注意必须是 2013,不是 2015/2017)
或者改用 ZIP 免安装版 + 手动初始化:
mysqld --initialize-insecure --basedir=...
,跳过 MSI 封装逻辑
若只是本地开发调试,强烈建议用
mysql:5.7
Docker 镜像,彻底避开 Windows 运行库陷阱

版本选择真正卡点的,往往不是功能多寡,而是上下游组件的“兼容窗口”——比如一个

mysql-connector-j
8.0.33 驱动能连 5.7.40、8.0.33、8.4.0,但它在连接 8.4.0 时若没显式配置
allowPublicKeyRetrieval=true&serverTimezone=UTC
,照样连不上。细节不在版本号里,而在连接字符串和初始化参数中。

相关推荐