前言
之前做一个课设项目时需要用到mysql,隔得太久远了,最近又在重温数据库的知识,想登录mysql,发现密码忘了。
经常一番探索,现在整理成文章,帮助各位避坑!
1 先关闭mysql服务
以管理员身份打开命令行窗口,这点很重要!!!不然会碰到权限不足的情况
在命令行输入
net stop mysql
命令关闭mysql服务。
2 以特殊权限启动 MySQL 服务
命令行窗口继续输入:
mysqld --console --skip-grant-tables --shared-memory
该选项的作用是让 MySQL 服务器在启动时不加载权限判断机制,这样任何用户都能无限制地访问数据库。这个命令一般是在 Windows 系统下,当你忘记 MySQL 密码,想要以调试模式启动服务器,同时又希望利用共享内存来优化本地通信时使用。不过再次强调,--skip-grant-tables 模式会带来安全隐患,操作完成后应及时恢复正常的权限验证机制!
当此命令运行后,会输出一大串信息,如下:
3 登录并修改密码
3.1登录数据库
以管理员身份打开另一个全新的命令行窗口(刚刚的那个不要关闭),输入
mysql
如果打印下面的信息,说明我们已经成功一半了!!!
3.2修改密码
alter user root@localhost identified by 'newpassword';
‘newpassword’里面写入你自己要设置的新密码,建议大家可以写简单的或者放入自己的备忘录里,不然以后又忘了!
输入命令后发现报错,这是因为权限表没有刷新,我们继续操作
3.3刷新权限表
修改完成后,必须执行
flush privileges;
并且重新设置一遍密码:
alter user root@localhost identified by 'newpassword';
这一步至关重要,它能使刚刚修改的密码以及相关权限设置生效,确保新密码能正常用于登录。
4 用新密码登录
4.1 先关闭刚刚第一个打开的命令行窗口,就是输出一长串信息的这个:
把这个命令行窗口关掉就行!
4.2 重启mysql服务
先输入:
quit
停止当前的mysql服务,如下图
接着输入:
net start mysql
这样子就你重启mysql服务啦!如下图:
最后一步就是验证我们刚刚修改的密码是否有效:
输入:
mysql -u root -p
然后敲入你刚刚修改的那个新密码,可以发现,成功登录mysql!!!大功告成耶!!!
文章制作不易,希望大家不吝啬发财小手给个一键三连!祝大家编程无BUG!!!
(过程中有任何问题可以打在评论区或者私信我)