您的位置:首页 > 数据库 > MySQL

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

2016-09-25 22:10 681 查看
在使用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');


参考资料

stackoverflow.com-Reset MySQL root password using ALTER USER statement after install on Mac

博客园-Windows下mysql忘记root密码的解决方法




本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql