1. 停止服务
bash
运行
net stop MySQL80
taskkill /IM mysqld.exe /F
2. 用带参数命令启动(关键:加 --shared-memory)
管理员 CMD:
bash
运行
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --skip-grant-tables --shared-memory
- 窗口会卡住,不要关,这就是正常运行。
新开 CMD,免密登录改密码
bash
运行
mysql -u root
sql
USE mysql;
FLUSH PRIVILEGES; -- 8.0 必须先刷权限
ALTER USER 'root'@'localhost' ACCOUNT UNLOCK;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
exit;
4. 恢复正常
-
关掉卡住的 mysqld 窗口(Ctrl+C)。
-
确认 my.ini 里没有
skip-grant-tables。 -
正常启动服务: bash
运行
net start MySQL80