必须验证三项硬性前置条件:MySQL 8.0版本≥8.0.37、操作系统≥CentOS 7.9/Ubuntu 18.04/Debian 10、XA RECOVER返回空结果;否则mysqld启动即卡死。需将MASTER_参数全改为SOURCE_,innodb_log_buffer_size默认值升至64M(内存不足会abort),并删除所有query_cache_*配置。

直接升级到 MySQL 8.4 LTS 前,必须确认三件事:你的 MySQL 8.0 版本 ≥ 8.0.37、操作系统 ≥ CentOS 7.9 / Ubuntu 18.04 / Debian 10、且 XA RECOVER 返回空结果。跳过任意一项,mysqld 启动就会卡住——不是连不上,是根本起不来。
my.cnf 配置项不改就启动失败
MySQL 8.4 彻底废弃了 MASTER_* 复制参数语法,也调整了多个 InnoDB 默认值。不手动改配置,服务直接拒绝启动:
-
MASTER_HOST、MASTER_USER等所有复制相关参数 → 必须全改为SOURCE_HOST、SOURCE_USER等,否则报错Unknown system variable 'MASTER_HOST' -
innodb_log_buffer_size默认值从16M提升至64M;若物理内存 ≤ 16GB,启动会失败(不是警告,是 abort) - 所有
query_cache_*配置必须删除;保留会导致启动时被忽略并报 warning,但不影响启动——不过留着就是冗余噪音
Error 1524 连接失败的即时修复
报错 Error 1524 (HY000): Plugin 'mysql_native_password' is not loaded 不是密码错了,是插件压根没加载。老应用直连会集体失效:
面向 CRM 系统的 MySQL 8 数据库模式设计。当用户需要为客户关系管理(CRM)系统设计、评审、优化或生成数据库模式时,应使用此项技能。
- 先用
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 导致高并发丢包
这不是配置问题,是官方确认的驱动层缺陷(Bug #115736)。现象非常典型:HikariCP 频繁标记连接为 broken,日志里密集出现 SQLNonTransientConnectionException: Got an error writing communication packets(ErrorCode 1160):
- ARM64 架构下连接初始化固定卡顿 30 秒;x86_64 Linux 普遍超 2 秒
- Spring Boot 3.2+ + JDK21 环境复现率接近 100%
- 必须弃用
mysql-connector-j 8.4.0,改用8.4.1或更高版本(截至 2026 年 10 月,8.4.3已修复) - 若无法立即升级驱动,临时方案是回退至
MySQL 8.0.45 + mysql-connector-j 8.0.45组合,无需改任何参数即可恢复稳定
最容易被忽略的是那些不报错的静默变更:innodb_change_buffering 默认值从 all 变为 none,批量写入二级索引时延迟毛刺变多、QPS 下降,但监控和日志里完全看不到异常信号;排查时容易误判为磁盘或 IO 问题。

















