升级 MySQL 8.0 到 MySQL 8.4 LTS 之前,需要先确认几项硬性前提:操作系统版本至少为 CentOS 7.9、Ubuntu 18.04 或 Debian 10;当前 MySQL 8.0 版本不能低于 8.0.37;执行 XA RECOVER 时返回结果必须为空。此外,还需要将所有
MySQL 8.0升级至MySQL 8.4 LTS注意事项
作者:技术拾光
时间:2026-08-18
浏览:277
文章目录
升级 MySQL 8.0 到 MySQL 8.4 LTS 之前,需要先确认几项硬性前提:操作系统版本至少为 CentOS 7.9、Ubuntu 18.04 或 Debian 10;当前 MySQL 8.0 版本不能低于 8.0.37;执行 XA RECOVER 时返回结果必须为空。此外,还需要将所有 MASTER_ 参数统一替换为 SOURCE_,并同步调整 innodb_log_buffer_size 的默认值。

必须验证的三项硬性前置条件
如果跳过其中任意一项,升级完成后很可能会卡在启动或连接阶段,这并非普通配置错误,而是服务本身无法正常启动:
- 操作系统版本需满足
CentOS 7.9、Ubuntu 18.04或Debian 10及以上,EL6、Debian 9 以及更早版本已不再受 MySQL 8.4 支持。 - 当前 MySQL 8.0 版本需不低于
8.0.37,低于该版本存在元数据升级 bug,已被明确列为不支持升级。 - 执行
XA RECOVER后必须返回空结果;如果存在未提交的 XA 事务,mysqld在启动时可能会静默挂起,不报错也不退出。
my.cnf 配置项不调整可能导致启动失败
MySQL 8.4 已不再兼容部分旧配置写法,以下内容必须手动修改,否则会直接报错并拒绝启动:
- 将
MASTER_HOST、MASTER_USER等所有MASTER_*复制参数全部改为SOURCE_*,例如改为SOURCE_HOST,否则会报Unknown system variable 'MASTER_HOST'。 innodb_log_buffer_size默认值已从16M提升到64M。如果服务器物理内存小于 4GB,需要显式设置回16M,否则可能导致启动失败。- 所有
query_cache_*相关配置都需要删除。MySQL 8.4 已彻底移除查询缓存模块,保留这些配置会触发启动警告并被忽略。
Error 1524 连接失败的处理方法
如果出现报错 Error 1524 (HY000): Plugin 'mysql_native_password' is not loaded,通常不是密码错误,而是对应插件未被加载:
- 先使用
caching_sha2_password方式登录:mysql -u root -p --default-auth=caching_sha2_password - 执行:
INSTALL PLUGIN mysql_native_password SONAME 'auth_socket.so';,注意文件名为auth_socket.so,不是auth_mysql_native_password.so。 - 逐个为业务用户重置认证方式:
ALTER USER 'app_user'@'%' IDENTIFIED WITH mysql_native_password BY 'newpass'; - 如果客户端驱动版本过旧,例如
mysql-connector-j 5.1,则需要升级到 8.0 及以上版本,否则握手仍可能失败。
容易被忽视的驱动问题与性能默认变更
以下问题通常不会立即报错,但很容易在上线后才暴露,并且排查过程较为复杂:
mysql-connector-j 8.4.0已确认存在 Bug #115736:在 ARM64 环境下连接初始化会固定卡顿 30 秒,在 x86_64 Linux 上普遍超过 2 秒,高并发场景下还可能频繁触发SQLNonTransientConnectionException: Got an error writing communication packets。应避免使用该版本,改用8.4.1或更高版本。innodb_change_buffering默认值已从all调整为none。在高频二级索引写入场景中,例如日志归档或 ETL 导入,延迟波动可能增多,QPS 也可能下降。如果旧配置中未显式设置,该功能实际上已经关闭。innodb_buffer_pool_instances等参数的默认值已改为动态计算,实际行为不再固定,因此生产环境中应显式配置,避免依赖默认值。
MySQL 8.0 升级到 MySQL 8.4 LTS 并不只是替换二进制文件。升级前必须确认 XA RECOVER 返回是否为空、innodb_log_buffer_size 是否与内存规格匹配,以及驱动是否命中 Bug #115736。若这些关键点未提前验证,故障往往会在最不希望出现问题的阶段暴露。
实用工具推荐
电子包浆
使用 ›绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
图片压缩
使用 ›选择画质和输出格式,预览压缩前后的大小。