MySQL忘记root密码单用户模式重置教程 MySQL

前言

管理员忘记 MySQL root 密码又没有其他高权限账号,只能进入跳过权限校验的单用户模式重置。操作需要重启数据库并短暂关闭访问,属于高风险维护,务必在停机窗口执行。本文讲解跳过授权表启动、重置密码、恢复正常启动、验证登录的完整步骤。

操作步骤

1. 停止 MySQL

systemctl stop mysqld

2. 以跳过授权表方式启动

mysqld_safe --skip-grant-tables --skip-networking &

skip-networking 阻止远程连接,避免空密码被利用。

3. 免密登录

mysql -uroot

4. 重置密码(MySQL8)

ALTER USER 'root'@'localhost' IDENTIFIED BY '新强密码';
FLUSH PRIVILEGES;

MySQL5.7:

UPDATE mysql.user SET authentication_string=PASSWORD('新强密码') WHERE User='root';
FLUSH PRIVILEGES;

5. 退出并正常重启

exit
systemctl stop mysqld
systemctl start mysqld

6. 验证新密码登录

mysql -uroot -p

常见坑

  1. 没加 --skip-networking,期间公网可空密码连接,风险极大。
  2. MySQL8 用 UPDATE 改密码语法不同,会报字段错误。
  3. 改完没 FLUSH PRIVILEGES,权限不刷新。
  4. 云数据库(RDS)不能进系统单用户,走控制台重置。
  5. 重启方式不对,mysqld_safe 未退出又起实例导致端口冲突。
  6. 生产环境操作窗口要通知业务,数据库短暂不可用。
  7. 重置后把新密码妥善保存,避免再次丢失。

总结

忘记 root 密码走 skip-grant-tables 单用户模式:停库 → 跳过授权表+禁网络启动 → 免密改密 → 正常重启验证。全程务必 skip-networking 并在停机窗口操作。云 RDS 用控制台重置,不要套用本方法。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-11-14 07:20 
'); })();