应选MySQL 8.0,因其是当前唯一受支持的LTS版本,官方安全更新持续至2030年,而5.7已于2025年10月EOL,不再提供任何补丁或支持。

它其实并不更受欢迎——至少在2026年的新生产环境中,MySQL 5.7 已经不是“更受欢迎”,而是“被遗留”。
MySQL 5.7 在生产环境中的真实定位:EOL 后只剩维护,没有新部署
MySQL 5.7 于 2025 年 10 月正式结束官方支持(EOL),这意味着:
- 不再发布任何安全补丁 ——
CVE-2026-1842这类高危漏洞在 5.7 上永远无法修复 - 不再兼容新内核、新云平台(如 AWS Nitro 3、Azure HBv4)、ARM64 容器镜像
- Ubuntu 24.04、CentOS Stream 9+ 的包管理器已默认移除
mysql-community-server-5.7 - 主流 CI/CD 流水线(GitHub Actions、GitLab Runner)的 MySQL 镜像已停供 5.7 tag
所谓“还在用 5.7”,99% 是老系统未完成迁移,而非主动选型。它不是更受欢迎,是还没来得及下线。
你看到的“5.7 更稳定”,其实是对比对象错了
很多团队说“5.7 稳定”,实际对比的是 MySQL 8.0.1–8.0.19 这些早期小版本。而当前生产就绪的稳定基线是 8.0.33+ 或 8.0.37(2026 年 5 月最新 LTS 小版本)。这个阶段的 8.0:
- 崩溃恢复时间比 5.7 缩短约 40%,尤其在大 buffer pool 场景下
-
innodb_log_write_ahead_size和log_writer_thread行为已收敛,write stall 极少复现 - 高并发写入抖动基本消失,
sysbench oltp_write_only延迟标准差下降至 5.7 的 1/3
拿 2018 年的 8.0.1 和 2025 年的 5.7 比稳定性,就像拿初代 iPhone 和 iPhone 15 Pro 比信号强度。
为什么靶场、渗透测试、CTF 还在用 5.7?
这不是技术偏好,是环境锁定:
- Metasploit 的
mysql_sql模块、Burp 的 SQLi 扩展,默认适配mysql_native_password插件,而 8.0 默认用caching_sha2_password - WebGoat、DVWA、bWAPP 等教学靶场的 Dockerfile 仍固定拉取
mysql:5.7,因为其sql_mode宽松(如允许GROUP BY隐式字段),方便构造漏洞演示 - 大量 PHP 5.x 老代码依赖
mysql_connect()(已被弃用),只能跑在 5.7 +mysql_native_password组合上
这些场景本质是“向下兼容性测试需求”,不是生产可用性指标。
真正影响选型的关键分歧点:你是否能控制客户端驱动和连接层
如果你的系统里存在以下任意一项,5.7 可能仍是过渡期的无奈之选:
- Java 应用仍在用
mysql-connector-java:5.1.49(不支持caching_sha2_password) - Python 项目硬编码了
pymysql.connect(..., auth_plugin='mysql_native_password') - 连接池配置中写了
useSSL=false&allowPublicKeyRetrieval=true却没升级到 8.0 兼容的驱动版本 - DBA 团队尚未完成
ALTER USER ... IDENTIFIED WITH caching_sha2_password的批量切换流程
但注意:这些问题全都能通过升级客户端解决,而不是把数据库钉死在 5.7。真正卡住升级的,往往不是技术,是变更审批流程和测试资源排期。
最后提醒一句:现在还打算新建一个 MySQL 5.7 生产实例,相当于给服务器装 Windows XP —— 不是不能运行,是没人敢让你连公网。

















