目录
[一、新版 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:仅最小启动,不跑升级,方便你手动排错
二、恢复前准备
-
备份数据目录默认路径一般是:
C:\ProgramData\MySQL\MySQL Server 8.0\Data直接复制整个 Data 文件夹到其他盘备份。
-
停止 MySQL 服务以管理员身份打开 CMD 或 PowerShell:
net stop MySQL80服务名如果不是 MySQL80,可以去「服务」里看一眼。
-
找到你的 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 库:
- 优先用:mysqld --upgrade=FORCE 自动修复
- 全程不需要重装 MySQL,不会丢业务数据
- 操作前备份 Data 目录,永远不翻车
如果你用的是 MySQL 8.0.20+ 以上版本,直接按本文第一套方法走,基本一次成功。
