赞
踩
因为很久没用MySQL了,今天在登录mysql的时候忘记了密码,于是找来了网上的教程,直接上结果——解决!
当然,在重置密码的时候还是除了点问题,希望我的帖子能对正在碰到相同问题的你给与帮助。
第一步:需要暂停mysql服务,net stop mysql。这里注意需要使用win+R,然后输入cmd,以管理员身份运行cmd。
图1 以管理员身份运行cmd
图2 关闭MySQL服务
图3 关闭MySQL服务成功
在如果遇到图二的状况,则需要你来到Mysql的安装路径下的bin文件,点击进入,然后复制路径。然后同样的使用管理员身份运行cmd。然后进入复制的路径,然后输入mysqld --install,然后再输入net stop mysql。
图4 复制MySQL的安装路径的bin
图5 进入MySQL的安装路径的bin
图6 将MySQL注册到win服务里
出现图二的状况的原因是:因为net start +服务名,启动的是win下注册的服务。此时,系统中并没有注册mysql到服务中。即当前路径下没有mysql服务。到此我们就解决了图二的问题,重新从图一开始操作就可以成功的进入图三了。
第二步:我们检查MySQL的mysql.ini配置文件里,是否配置了跳过验证。如果没有则手动在[mysqld]后面自己添加进去一条skip_grant_tables。
然后我们在cmd命令行接着输入 mysqld --skip-grant-tables,则可以跳过跳过验证,然后重开一个cmd管理员命令,重新输入mysql -u root -p就可以直接按回车登录进去了。
在这里我们注意如果你的版本是MySQL8.0以后的版本,那么可能会报错,此时当前命令不可用,应该将mysql --skip-grant-tables改为mysqld --console --skip-grant-tables --shared-memory,此时再另外一个cmd窗口输入 mysql -u root -p,然后密码直接输入root就可以登录mysql的命令行了。
这两部的区别就是前者直接回车,后者需要输入root才能进入。
图7 使用root登录成功
切换到mysql:
use mysql;
把密码置空:
update user set authentication_string='' where user='root';
刷新权限:
flush privileges;
设置加密规则并更新新密码,授权(直接复制这些SQL语句你的密码会更新为123456)
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
alter user 'root'@'localhost' identified by '123456';
grant all privileges on *.* to "root"@'localhost';
flush privileges;
退出
exit;
图8 重现设置新密码,退出
------------------------废话分割线,赶时间可以不用看--------------------
然后重新启动服务net start mysql。会发现启动不了,报错。那么恭喜你,我也遇到了,并且还很麻烦卡在这里俩小时(吃饭去了)
而且之前的一步操作是(我们在cmd命令行接着输入 mysqld --skip-grant-tables,则可以跳过跳过验证,然后重开一个cmd管理员命令)。
那么我们到这步可以发现,那个最开始的cmd没有被关闭的时候,我们是无法重新启动服务的,也就是net start mysql会告诉你服务没有报告任何错误且服务器无法启动。
图9 服务器无法启动
但是直接忽略启动服务器这一步,直接mysql -u root -p 然后输入新设置的密码发现登录进去了。
图10 在没有将最开始的cmd关掉时,直接可以使用修改后的密码登录
这时候你就算再新开一个cmd发现也是可以登录新设置的密码进入的,前提是,你最开始的那个记录有mysqld --skip-grant-tables的cmd没有关闭。一旦关闭,还是会再登录密码那里报错,但是你发现又可以启动服务了。神奇!然并卵.............我们的目标是启动服务并且使用更改的密码可以进入。这一步我也是各种百度才搞到的,珍惜吧家人们!!!
--------------废话分割线结束,赶时间直接从这里开始看--------------------
第三步:把mysql.ini配置文件里刚手动在[mysqld]后面自己添加进去的skip_grant_tables打上注释或者删除,退出保存。
图11 注释掉跳过验证的代码
第四步:然后再重启服务net start mysql,会发现可以启动服务了。而且输入密码也可以,正常使用已经修改的密码了。
图12 服务启动成功,新密码登录成功
好了,经过了这么一番操作之后,如果我们还是把密码在不久的将来忘了,那么之后就不用这么麻烦了。跟着下面走一次就ok了。
可以先去配置文件里把注释的那行代码重新打开,然后保存。
找到mysql的bin文件下,复制地址。然后打开cmd管理员模式进入该地址。
暂停服务,net stop mysql!!!然后用那两种代码选一种跳过验证,然后重开一个cmd管理员命令,重新输入mysql -uroot -p不需要密码回车进入。第二种是需要输入root就可以直接登录进去了。
use mysql; !!!!!改密码之前的这一步别忘了!!!
改完密码退出之后,别急着启动服务,先去把配置文件里的跳过验证那个代码注释掉,然后保存配置文件。接下来就是使用net start mysql 启动服务,然后mysql -uroot -p ,输出你更改后的密码。就成功了!
参考文献
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。