关于mysql忘记密码的解决策略

  1. 关闭mysql服务

    命令行输入

    net stop mysql
    

    或者打开计算机管理(此电脑->管理 可进入)找到自己的mysql

    直接点击停止

  2. 绕过密码登录

    打开命令行(win+R ->cmd)(管理员/非管理员状态下皆可)输入

    mysqld --initialize
    
    mysqld --console --skip-grant-tables --shared-memory
    

    此时运行持续不终止,保持此窗口不关闭,另开一个命令行窗口(以管理员身份打开),输入

    mysql -u root -p
    

    此时会提示输入密码,这个密码填什么都行,进入mysql,输入

    use mysql
    
    select user,authentication_string,host from User;
    

    上面一行是查看操作,可以没有

    alter user 'root'@'localhost' identified by '123456';
    

    上面一行是更改密码操作,root为用户名对应user,localhost对应host,后方是自己更改的密码

    flush privileges;
    

    设置生效

    quit;
    

    退出

    关闭这两个命令行窗口后重新启动mysql,输入更改后密码,成功

  3. 其他问题

    其他解决办法:重装

    指路-> 安装教程

    其他问题:为什么修改后查看命令

    select user,authentication_string,host from User;
    

    更改用户名的密码是乱码?

    原因:自己设置的密码在查看时有加密过程

    可以通过

    select user,plugin from user where user='root';
    

    查看密码的加密方式

    所以这就是为什么有些教程使用

    update user set authentication_string='123456' where User='root';
    

    不成功的原因,因为没有加密过程,实际密码非设定密码