当前位置: 首页 > news >正文

MySQL升级8.0.44后登录报错-系统表不支持MyISAM存储引擎

一、故障现象

近期我们公司内部网络安全排查中,发现其中一个业务系统使用的是mysql8.0.11,存在几个高风险漏洞,经评估决定对其升级到最新版本MySQL8.0.44。升级后出现数据库无法远程登录,即使输入正确的密码也提示连接拒绝,报错如下图;
MySQL远程登录报错

二、排查处理过程

第一步:尝试修改用户密码

开始我以为是数据库用户的密码错误了,就想着使用root用户进去修改下用户密码。执行修改用户密码的sql,结果发现执行sql报错,提示系统表不支持MyISAM存储引擎,提示如下图:
修改数据库用户密码报错

第二步:通过日志确认原因

通过查看 MySQL 数据库运行日志,发现数据库在启动时就已经发出警告,

[Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.user].
[Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.db].

系统表不支持'MyISAM'存储引擎

第三步:尝试使用mysql_upgrade手动升级数据结构

使用 mysql_upgrade 命令使用手动升级方式,重新升级数据库表数据。提示已经不支持使用该方式手动升级数据库数据文件。借助翻译工具翻译后的内容可以看到:新版本的MySQL数据库在启动时会自动升级,但是也提供了 --upgrade 参数用于控制升级动作。可以尝试使用该方式强制升级mysql数据库。

mysql_upgrade

提示内容翻译
mysql_upgrade 客户端现已弃用。原先由该升级客户端执行的操作,现在均由服务器自身完成。
要执行升级,请使用新的 MySQL 二进制程序启动旧的数据目录。用户表的修复将自动进行,升级后无需重启。
当使用新版本的 MySQL 二进制程序启动旧数据目录时,升级过程会自动开始。为避免意外触发升级,请在启动 MySQL 二进制程序时使用 --upgrade=NONE 选项。此外,也提供了 --upgrade=FORCE 选项,用于按需强制执行服务器升级流程。
升级过程可能因多种原因而失败。若发生失败,MySQL 服务器在下次启动时将再次尝试执行升级序列。如果服务器反复升级失败,可使用 --upgrade=MINIMAL 选项启动服务器,以跳过升级流程,从而允许用户手动排查并修复问题。

第四步:使用upgrade参数强制升级数据库

根据刚才的提示,可以使用upgrade参数控制数据库的升级行为,查看upgrade参数如何使用,

mysqld --verbose --help | grep -A 10 -B 10 -i "upgrade"

upgrade参数

参数值 含义
NONE 如果自动升级服务器,则中止启动
MINIMAL 启动服务器,但跳过非绝对必要的升级步骤
AUTO(默认) 在需要时自动升级服务器
FORCE 强制执行服务器升级

根据提示内容,FORCE 可以强制服务器启动的时候执行升级操作。

 mysqld --user=mysql --datadir=/..../mysql/ --upgrade=FORCE

使用upgrade参数强制升级数据库

查看MySQL的运行日志可以看出,在数据库启动过程中执行了升级操作,而且完成了升级,也没有出现之前 Storage engine 'MyISAM' does not support system tables 的字样。

第五步: 正常启动数据库,尝试登陆

使用常规参数启动数据库服务,查看日志确认没有在出现类似告警,尝试使用mysql命令行工具登录数据库,经过尝试可以正常登录。

systemctl restart  mysqld
mysql -u'user' -p -h192.168.170.195

尝试使用mysql命令登陆数据库

开始逐个启动服务,逐步恢复业务系统。
到此为止完成本次故障处理。

http://www.jsqmd.com/news/299422/

相关文章:

  • 多策略黑猩猩优化算法研究及其工程应用 黄倩 MATLAB代码 针对基本黑猩猩优化算法存在的依赖...
  • 吐血推荐8个AI论文网站,专科生轻松搞定毕业论文!
  • 小白也能学会!本地部署大模型全攻略:从CUDA配置到ChatGLM-6B运行
  • 小白也能学会!vLLM本地部署大模型完整教程
  • 一文读懂AI Agent:大模型时代的智能体技术与应用场景全解析,面了字节大模型岗
  • 深入理解Agentic RAG:从检索增强到智能体驱动的技术演进(建议收藏)
  • 深入理解LLM三大核心技术:Function Calling、MCP与A2A实战指南
  • 大模型构建知识图谱的挑战与解决方案:判别式模型的优势
  • 零基础转行AI大模型:我的自学经验分享(程序员必备,建议收藏)___转行人工智能大模型
  • 企业级大模型落地宝典:精准选模+高效开发+持续优化(建议收藏)
  • 2026/1/25 今天学的day12的lecode1047和150
  • python第二次作业
  • NaViT:解决图像大小问题的革命性大模型架构
  • 【2026最新】人工智能智能体协议详解,大模型开发者必学收藏指南
  • 程序员必看!阿里Qwen3-TTS开源:3秒克隆声音,低至97ms延迟,多模态语音合成全家桶
  • 开发AI Agent不用从零开始:3个版本实现从入门到工业级应用
  • openssl-libs-1.1.1f-4.p12.ky10.x86_64.rpm 安装指南 解决依赖与常见报错
  • 【AI大模型大厂面经】阿里一面,大模型SFT微调完全指南:从入门到精通,收藏必备!
  • 普通人意义感崩塌 = 内耗?
  • Java全栈开发面试实录:从基础到实战的全面考察
  • MATLAB数据分析,基于遗传算法,粒子群优化算法优化BP神经网络GA-BP和PSO-BP的数...
  • 文字快速转为PPT播放工具:高效演示文稿制作新选择
  • 手把手玩转西门子S7-200 Smart与施耐德ATV12的Modbus基情互动
  • C#工业触摸屏上位机源码:强大功能、多种通信方式、用户权限管理、多线程编程与WEB服务对接
  • 微网优化模型 多目标matlab 编程语言:matlab 方法:多目标粒子群mopso 内容摘要
  • 光伏并网逆变器设计方案,附有相关的matlab电路仿真文件,以及DSP的程序代码
  • Unix时间戳
  • 拒绝背锅!服务器卡顿CPU却空闲?一文揪出磁盘I/O这个“隐形杀手”
  • 彼得林奇对公司并购后文化整合成功因素的案例研究
  • React 组件状态(State)