如何重置mysql root密码_mysql忘记密码解决

0次阅读

MySQL root 密码忘记后无需重装,可跳过权限验证修改:Linux/macOS 用 –skip-grant-tables 启动后执行 ALTER USER;Windows 用 –init-file 执行 SQL 脚本;注意 8.0+ 认证插件兼容性及密码策略。

如何重置 mysql root 密码_mysql 忘记密码解决

MySQL root 密码忘记后,无法正常登录,但无需重装数据库。核心思路是跳过权限验证启动 MySQL,再通过本地连接修改 root 密码。整个过程需有服务器管理员权限(Linux/macOS)或 Windows 管理员身份。

Linux/macOS 下跳过授权表重置密码

适用于使用 systemd 或 mysqld_safe 管理的系统:

  • 先停止 MySQL 服务:sudo systemctl stop mysql(Ubuntu/Debian)或 sudo systemctl stop mysqld(CentOS/RHEL)
  • –skip-grant-tables–skip-networking 启动 mysqld:
    sudo mysqld –skip-grant-tables –skip-networking &
  • 此时可免密登录:mysql -u root
  • 执行以下 SQL 修改密码(MySQL 5.7+ 使用 ALTER USER,8.0+ 推荐用 ALTER USER … IDENTIFIED WITH mysql_native_password):
    FLUSH PRIVILEGES;
    ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘ 你的新密码 ’;
  • 退出后重启正常服务:sudo systemctl start mysql

Windows 下安全模式重置 root 密码

适用于 MySQL 作为 Windows 服务运行的情况:

  • 以管理员身份打开命令提示符,停止服务:net stop mysql(服务名可能为 mysqld 或自定义名,可用 sc queryex type= service state= all | findstr “mysql” 查看)
  • 新建一个文本文件(如 reset.sql),内容为:
    ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘ 新密码 ’; FLUSH PRIVILEGES;
  • 用安全模式启动并执行脚本:
    mysqld –init-file=C:pathtoreset.sql –console
  • 成功执行后关闭窗口,再用 net start mysql 启动服务

注意密码策略与认证插件兼容性

MySQL 8.0 默认使用 caching_sha2_password 插件,部分客户端不兼容。若重置后连接报错“Client does not support authentication protocol”,需显式指定插件:

  • 登录后执行:
    ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘ 新密码 ’;
  • 或在配置文件 my.cnf[mysqld] 段加入:
    default_authentication_plugin=mysql_native_password,然后重启

预防下次再忘:记录并测试新密码

重置完成后务必立即验证:

  • 用新密码登录:mysql -u root -p
  • 检查用户和插件:SELECT user, host, plugin FROM mysql.user WHERE user=’root’;
  • 将密码存入可信的密码管理器,避免明文保存在桌面或文档中
  • 考虑创建一个普通管理账户并限制 root 仅本地登录:
    CREATE USER ‘admin’@’localhost’ IDENTIFIED BY ‘ 强密码 ’; GRANT ALL PRIVILEGES ON *.* TO ‘admin’@’localhost’ WITH GRANT OPTION;

操作本身不复杂,但每一步依赖前序状态是否正确。跳过权限启动时若端口被占或配置冲突,会启动失败;改密后未刷新权限或未重启服务,新密码也不生效。关键在顺序和权限上下文的一致性。

星耀云
版权声明:本站原创文章,由 星耀云 2026-03-15发表,共计1609字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources