MySQL大版本升级前必须确认5件事:确认真实版本、检查MyISAM表并转InnoDB、验证用户认证插件兼容性、运行mysqlcheck检查不兼容项、执行含物理文件的完整备份。MySQL 大版本升级前必须确认的 5 件事不能直接 apt upgrade mysql-server 或替换 RPM 包------大版本升级(如 5.7 → 8.0)不是补丁更新,底层数据字典、默认认证插件、SQL 模式都变了,跳过校验大概率导致服务起不来或数据不可读。mysqld --version 和 SELECT VERSION(); 确认当前真实版本(有些镜像里 mysql --version 显示客户端版本,会误判)检查是否用了 MyISAM 表------8.0 虽仍支持,但已废弃,mysql_upgrade 不再修复其索引损坏,必须先转成 InnoDB确认所有用户密码不是用 mysql_native_password 以外的插件(如 caching_sha2_password 在旧客户端可能连不上,尤其 PHP 7.4 以下、Navicat 旧版)运行 mysqlcheck -u root -p --all-databases --check-upgrade,它比人工扫 INFORMATION_SCHEMA 更准,能提前暴露不兼容的 JSON 字段、隐藏列等备份不是"导出 SQL",必须包含 mysqldump --all-databases --routines --triggers --events --single-transaction + 原始 ibdata1 和 ib_logfile* 的物理备份(用于回滚)8.0 升级后登录失败:caching_sha2_password 是真凶升级完启动正常,但应用连不上,错误是 Plugin caching_sha2_password could not be loaded 或 Authentication plugin 'caching_sha2_password' cannot be loaded------这不是 MySQL 没装好,是客户端不认新默认插件。临时解法(仅调试):ALTER USER 'xxx'@'%' IDENTIFIED WITH mysql_native_password BY 'pwd'; FLUSH PRIVILEGES;长期方案:PHP 用 mysqli_options($link, MYSQLI_OPT_SSL_MODE, MYSQLI_SSL_DISABLED) 配合新版驱动;Java JDBC 连接串加 ?serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false别改全局 default_authentication_plugin:它只影响新建用户,已有用户密码哈希方式不变,改了反而让部分用户无法登录mysql_upgrade 不再可用:8.0.16+ 必须用 mysqld --upgrade执行 mysql_upgrade 报错 Command not found 或 This command is deprecated------没错,它从 8.0.16 开始被移除。升级逻辑已合并进 mysqld 启动流程,手动调用只会白忙。 Adobe Image Background Remover Adobe推出的图片背景移除工具
相关推荐
梦想不只是梦与想2 小时前
Python 中subprocess 模块:执行外部命令懂点Tech3 小时前
ctfshow MISC入门图片篇(信息附加):misc41解题思路catoop4 小时前
API Key 设计与安全生成方案:结构拆解、数据库设计与 Java 实现Web极客码4 小时前
我用 Claude 分析 Redis 哨兵日志,实现跨机房数据不一致自动对齐库库的数据库笔记4 小时前
国产信创数据库的MySQL兼容性深度对比解析姚远Oracle ACE5 小时前
为什么无法连接到 PostgreSQL?ss2735 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 22 PostgreSQL实例与集群ss2735 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 21 PostgreSQL进程与内存架构介绍Henry-SAP7 小时前
SAP PP模块全景概览