← Back to blog

DigitalOcean MySQL 8.0 用户:10 月 30 日强制升级 8.4,这三项必须先查

如果你在 DigitalOcean 上跑 MySQL 8.0,这个月有一件不能拖的事:DO 将在 10 月 30 日强制把 8.0 实例升级到 8.4。而 MySQL 8.0 早在 2026-04-30 就已经 EOL(生命周期结束),意味着这半年你跑的一直是没有安全更新的版本。

强制升级最痛的从来不是版本号,而是不兼容项在升级当天才暴露。根据我们的巡检经验,8.0 → 8.4 有三类问题最常见:

1. 还在用 mysql_native_password 的账号

MySQL 8.4 默认认证插件是 caching_sha2_password,并且对 mysql_native_password 的支持进一步收紧。从 8.0 时代遗留下来的老账号如果没改过认证插件,升级后可能直接连不上。

先自查,一条 SQL 列出所有"钉子户":

SELECT user, host, plugin
FROM mysql.user
WHERE plugin = 'mysql_native_password';

修复也很直接,逐个改掉:

ALTER USER 'app'@'%' IDENTIFIED WITH caching_sha2_password BY 'new_password';

注意:改完要在业务低峰验证应用连接,老客户端驱动对 caching_sha2_password 的支持要先确认。

2. 8.4 已移除的系统变量

8.4 移除了几个 8.0 时代就已废弃的变量。如果你的 my.cnf 或启动脚本里还写着它们,升级后实例可能起不来。典型例子包括 avoid_temporal_upgrade、show_compatibility_56 等——别凭记忆猜,用 dbcheck 的采集包跑一遍,8.4 已移除变量扫描会自动标出来并给出替换建议。

3. EOL 之后的安全真空

2026-04-30 之后,8.0 不再收到任何安全补丁。这半年的 CVE 都是裸奔。升级 8.4 不只是"跟上版本",而是把安全更新通道重新接上。

现在就做一次升级就绪检查

dbcheck 的 MySQL 引擎已经内置了「8.4 升级就绪检查」:上传采集包,自动输出 EOL 风险、native_password 账号清单、已移除变量扫描三项结论,免费看评分与风险摘要。10 月 30 日之前把这三项清零,升级当天才能睡得着。

Hit a similar issue?

Upload a collector bundle and let dbcheck give your database a full health check — scores and risk summary are free.

Start free inspection