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推出的图片背景移除工具
相关推荐
傻啦嘿哟5 小时前
某招聘平台爬虫:爬取招聘岗位数据,分析各城市薪资水平2501_933670795 小时前
2026秋招量化分析岗技能栈:Python、SQL、统计建模、回测项目怎么准备2601_962077605 小时前
python Dejavu库快速识别音频指纹实例探究科技苑6 小时前
如何用Python编程实现一个简单的Web爬虫?程序员清风6 小时前
Java 后端高并发设计:线程池、限流、熔断与降级天衍四九-6 小时前
MySQL中如何定位慢查询?如果SQL语句执行很慢,如何分析和优化?dayDayupbetter6 小时前
Visual C++ 2010安装与使用高手秘籍隐擎fox6 小时前
深入理解网络传输层安全:TLS 指纹识别(JA3/JA4)原理与 Python 协议层检测实战尚久龙6 小时前
mysql-5.7.26-winx64的安装步骤医疗信息化王工6 小时前
DataForge:基于 Python 的数据库批量导出 Excel 工具——从架构到部署的全流程实战