MySQL忘记root登录密码怎么办(windows)

时间:2022-11-02 15:44:26

在使用MySQL时,我们难免会遇到忘记root的密码的烦恼(或者初次登录MySQL无法成功认证),那么究竟该如何解决这个问题呢?下面我会给您答案。

NOTE:本博客的方法仅在windows下测试过,其他系统平台并未进行测试。

关闭MySQL服务器

首先我们需要先关闭MySQL服务器,如果你未启动该服务可以跳过这一步。关闭MySQL服务器有好几种方法,最简单粗暴的方法就是启动任务管理器结束该服务,当然你也可以优雅地关闭该服务——使用CMD命令行:

    net stop mysql

进入安全模式

打开CMD命令行,输入下列命令:

    mysqld -nt --skip-grant-tables

即可进入安全模式,即不用密码认证即可登录MySQL。

下面就可以使用root用户进行登录了:

    mysql -uroot -p

当提示要输入密码时,按回车键即可。

修改root密码

登录成功后,我们就可以修改密码了,打开CMD输入以下命令:

    mysql> update mysql.user set password=PASSWORD('your password') where User='root'; 

NOTE:不要忘记命令后的分号;

your password即为你要修改的密码。

对于有些高版本的MySQL,运行上述命令可能会产生下面的错误:

ERROR 1054 (42S22):unknown column ‘password’ in ‘field list’

因为由于某些比较古怪的原因,password被修改为authentication_string。所以如果你遇到这个错误那么请改用下面的命令:

    mysql> update mysql.user set authentication_string=password('your password') where user='root' and Host ='localhost';

命令运行成功后,就需要刷新权限表,然后退出即可:

    mysql> flush privileges;
mysql> quit

现在你就可以使用修改后的密码进行登录了,enjoy!

意外收获

在我成功修改完密码之后,我尝试使用navicat连接MySQL,但是却出现错误提示”root口令已过期”,这让我很是疑惑,于是我只好按照刚才的步骤重新修改密码。但是却又出现了错误:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

这时你可以使用下面的命令更新root密码:

    mysql> SET PASSWORD = PASSWORD('your_new_password');

参考资料

  1. *.com-Reset MySQL root password using ALTER USER statement after install on Mac
  2. 博客园-Windows下mysql忘记root密码的解决方法

MySQL忘记root登录密码怎么办(windows)
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。