需要注意的是:这篇文章解决的是Windows操作系统下的MySQL密码问题,如果是mac或者是linux的请移步其他博主的博客。
现在很多APP,及其服务为了安全着想,都需要设置密码,而 当我们设置的密码逐渐增多时,难免会忘记自己一开始设置的密码是什么,这个时候我们就需要进行找回密码或者是修改密码操作。这不,在今天当我想要使用MySQL数据库时,却将mysql57的root密码忘记了,怎么都想不起来。于是我就到网上去查找相关的方法,结果都不行。虽然有些方法和指令使用后可以修改,但是修改后却都没有生效。
‘皇天不负有心人’,虽然最后还是搞了出来,但是却是花费了足足两天的时间,中间尝试了数十遍。想着大家应该也会遇到类似的这种烦人问题,于是写下这篇文章,记录且作为一个分享。
也不用去结合多篇文章来看了。这一篇就行,如果按照步骤后还是不能找回自己的密码,请在评论区回复留言。
目录
一,关闭mysql服务进程
二, 跳过授权表
三,无密码登录MySQL
四,连接权限数据库
五,修改root用户密码
六,打开MySQL服务
======================================================================
一,关闭mysql服务进程
如下我的mysql数据库管理系统下的bin目录为:E:\StudyForCL\MySQL\Mysql5.7\bin
接下来我们将其删除,写入“cmd”,进入命令行窗口(终端)
接着我们输入net stop mysql 命令,如果出现如下的“拒绝访问”的话,当前操作用户的权限太低
我们可以到电脑的本地搜索或者是是开始菜单里面去找cmd,然后右击“以管理员身份运行”
之后我们去停止服务就可以了,如下:
二, 跳过授权表
首先我们需要先加入我们要修改的dbms的bin目录下,如:E:\StudyForCL\MySQL\MySQL Server 5.7\bin
输入指令:
mysqld --defaults-file="E:\StudyForCL\MySQL\Mysql5.7_data\my.ini" --skip-grant-tables
--skip-grant-tables 强制mysqld忽略权限设置启动既无权限控制—所以用户均是super权限;
【可以不使用权限系统来启动服务器,让任何用户可以访问服务器并不受限制的访问所有数据库】
三,无密码登录MySQL
之前我们使用跳过授权表的指令后,cmd命令行窗口无法输入其它指令,因此我们需要重新开一个窗口,然后如下:输入MySQL的用户名,端口号,直接回车。
指令:mysql -uroot -P3306
四,连接权限数据库
出现mysql提示符后我们再接着连接权限数据库:use mysql;
五,修改root用户密码
现在我们去修改密码:
1,update user set authentication_string=password('root12345') where user='root' and Host='localhost';
接着我们需要去刷新我们的权限,让我们的修改生效:flush privileges;
我们现在退出mysql命令行,回到cmd命令行窗口下:quit
六,打开并连接MySQL服务
之后我们再去重启mysql服务
【这里需要提前将之前打开的跳过权限表的窗口关闭,不然mysql启动就会失败。】
最后使用我们修改后的密码登录。如下登录成功。
如果帮助到了大家的话,请点个免费的赞。
如果还有问题的话,请在评论区留言。