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

3次阅读

关键不是“最新”而是“匹配”:需根据应用框架(如spring Boot 2.x/3.x、django 4.2+)和驱动版本选择对应mysql版本,避免认证插件、排序规则、代理工具等兼容性问题,生产环境优先选8.0.33 LTS版。

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

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 allowedAuthentication 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_csGROUP 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.0mysql: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,照样连不上。细节不在版本号里,而在连接字符串和初始化参数中。

text=ZqhQzanResources