Windows 下 MySQL sys 数据库误删恢复教程(mysql_upgrade 已废弃,新版适用)

目录

[一、新版 MySQL 修复机制](#一、新版 MySQL 修复机制)

二、恢复前准备

三、使用服务器强制修复

四、总结


在日常使用 MySQL 时,不少同学会不小心把系统自带的 sys 数据库删掉。删掉之后,虽然业务库一般还能用,但性能监控、部分管理工具会异常,看着也很闹心。

以前大家常用 mysql_upgrade 来修复,但从较新版本 MySQL(尤其是 8.0+)开始,官方已经明确提示:

The mysql_upgrade client is now deprecated.mysql_upgrade 客户端已被废弃,相关升级、修复逻辑现在由服务器自动完成。

下面在 Windows 上真正可用、符合新版 MySQL 规范的 sys 库恢复方法,全程亲测有效。


一、新版 MySQL 修复机制

从新版 MySQL 开始:

  • mysql_upgrade 已废弃,不再推荐使用
  • 升级 / 修复系统表、重建 sys 库的逻辑,由 mysqld 服务器自动执行
  • 启动时服务器会自动检查数据目录,自动修复系统表
  • 支持通过启动参数控制是否升级 / 修复

核心参数:

  • --upgrade=FORCE:强制执行升级 / 修复序列,用来重建 sys 库非常合适
  • --upgrade=NONE:不执行任何升级,避免意外修复
  • --upgrade=MINIMAL:仅最小启动,不跑升级,方便你手动排错

二、恢复前准备

  1. 备份数据目录默认路径一般是:

    复制代码
    C:\ProgramData\MySQL\MySQL Server 8.0\Data

    直接复制整个 Data 文件夹到其他盘备份。

  2. 停止 MySQL 服务以管理员身份打开 CMD 或 PowerShell:

    复制代码
    net stop MySQL80

    服务名如果不是 MySQL80,可以去「服务」里看一眼。

  3. 找到你的 mysqld.exe典型路径:

    复制代码
    C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe

三、使用服务器强制修复

直接用 mysqld 强制触发升级修复流程,它会自动重建 sys 库。

  • 管理员 CMD 进入 bin 目录:

    复制代码
    cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
  • 执行强制修复:

    复制代码
    mysqld --datadir="C:\ProgramData\MySQL\MySQL Server 8.0\Data" --upgrade=FORCE
  • 等待命令执行完成屏幕输出一堆日志,没有报错、稳定停下就成功。

  • 启动 MySQL:

    复制代码
    net start MySQL80
  • 登录验证:

    复制代码
    SHOW DATABASES;

    能看到 sys 库就恢复成功了。


四、总结

在 Windows 上恢复误删的 sys 库:

  1. 优先用:mysqld --upgrade=FORCE 自动修复
  2. 全程不需要重装 MySQL,不会丢业务数据
  3. 操作前备份 Data 目录,永远不翻车

如果你用的是 MySQL 8.0.20+ 以上版本,直接按本文第一套方法走,基本一次成功。

相关推荐
风哥2号1 小时前
数据库教程FGMT43‑MySQL性能分析与优化调整
数据库·mysql
默 语4 小时前
Java新手入门:从零开始安装JDK并配置环境变量
java·开发语言·python·mysql·group by·1024程序员节·数据去重
用户3074596982074 小时前
MySQL EXPLAIN 零基础完全精通指南:从"看不懂"到"会优化"
mysql
这个DBA有点耶5 小时前
自增主键用尽了怎么办?INT溢出、在线迁移与预防策略全解析
数据库·mysql·代码规范
迷茫的大专生5 小时前
高可用总结
redis·mysql·nginx·高可用
迷茫的大专生7 小时前
服务器部署与 MySQL 运维学习笔记:从 Ansible 到高可用与性能优化
mysql·nginx·ansible·mysql优化·keepalive
Lyra_Infra8 小时前
从 MySQL 到达梦:一次信创隔离环境里的数据库迁移踩坑实录
数据库·后端·mysql
泡茶喝茶写代码8 小时前
量化数据开发实战系列(第 25 篇):基金基础接口实战:基金列表、ETF-LOF 分类、基金概况、净值数据
java·数据库·人工智能·python·mysql
worilb9 小时前
Win下使用同一套MySQL创建第二个独立实例
mysql
风哥2号10 小时前
数据库教程FGMT40‑MySQL性能优化之性能基准测试
数据库·mysql