MySQL忘记root用户密码?无法登录?

本文适用于初始化后忘记密码无法登陆?多次修改后忘记密码等。皆可跳过验证登陆数据库修改用户密码。

8.0以下版本适用

  1. 打开cmd(需要用管理员权限启动) -- > net stop mysql 停止mysql服务

    • 非管理员方式启动cmd,停止服务会提示权限不够,拒绝访问等
    停止服务
  2. 使用无验证方式启动mysql服务: mysqld --skip-grant-tables

  3. 打开新的cmd窗口,直接输入mysql命令,敲回车。就可以登录成功

    跳过验证
  4. 进入mysql库进行密码修改

    # 进入存放密码的数据库
    use mysql;
    # 用sql语句进行密码修改
    update user set password = password('你的新密码') where user = 'root';
    
    # 提示:Unknown column 'password' in 'field list'
    # 错误的原因是 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
    
    # 5.7版本后的修改语句
    update user set authentication_string = password('你的新密码') where user = 'root';
    # 刷新立即生效
    flush privileges;
    
    修改密码
  5. 关闭两个命令窗口

  6. 打开任务管理器,手动结束名为mysql.exe的进程

    结束进程
  7. 重新启动mysql服务(此处也需要以管理权限启动),使用新密码进行登录

    # 重启服务
    net start mysql
    # 登录mysql
    mysql -uroot -p新密码
    
    使用新密码登录
  • 到此教程结束,密码修改成功

8.0以后版本适用基本同理

  1. 管理员的方式打开命令窗口执行net stop mysql
  2. 执行命令跳过密码验证方式启动mysql: mysqld.exe --console --skip-grant-tables --shared-memory
  3. 不关闭当前窗口,新开一个命令窗口无密码登录:mysql -uroot
  4. 登录成功清空密码:use mysql; update user set authentication_string='' where user='root';
  5. 关闭当前两个窗口
  6. 管理员的方式打开命令窗口执行net start mysql
  7. 重新登录mysql:mysql -uroot
  8. 修改新密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码'; flush privileges;
  9. 退出mysql,重新登录,验证新密码生效

你可能感兴趣的:(MySQL忘记root用户密码?无法登录?)