【背景】

最近学习碰到了一件挺令人尴尬的事情,我把MySQL的密码给忘记了,所以MySQL登录不进去。

网上的解决方案很多,尝试了很多,依旧是被窗口的各种报错虐。感谢大神的助力,MySQL忘记密码解决方案才得以清晰,希望本篇博客的解决过程可以帮到读者。

【问题解决过程】

一、跳过MySQL的权限审查进入MySQL

首先,找到MySQL的my.ini配置文件。

然后,打开文件,在mysqld下,添加一句代码 skip-grant-tables ,以跳过权限的审核。


很重要的一步:win+R 输入services.msc,找到mysql服务,重启服务。

我怀疑我之前操作的时候,这一步没有执行正确。(而且,这里我也有点疑问,我怎么有两个MySQL服务,一个MySQL,一个MySQL57,MySQL属性里没有配置文件,而MySQL57是有的。)


二、在mysql.user表中重置密码

首先,cmd进入DOS窗口,输入MySQL,回车。就可以顺利进入MySQL,而不需要密码。(我之前连这一步都 实现不了,所以当成功进入MySQL的时候,别提我心里多高兴了~~)

然后,我们再看看mysql.user表里都有啥。 select user,host,authentication_string from mysql.user

(Tips:一开始查询 password,发现这个字段是不存在,后来上网查才知道MySQL5.7 把password的字段给换掉了,换成了authentication_string<中文含义 认证字符串>。)
=================================

此处,对host进行一下了解。

Host列指定了允许用户登录所使用的IP范围。

比如user=root Host=192.168.21.1。这里的意思就是说root用户只能通过192.168.21.1的客户端去访问。而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.21.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。所以要开启远程连接的时候,大部分人都直接把Host改成%的缘故,因为这样超级方便。

=================================

很重要的一步:我们设置一下host和密码。

Update mysql.user set host="%",authentication_string=password('root') where user='root';

还有一点小疑问:刷新之后,你直接输入mysql,是没有办法跳过密码审核进入MySQL的,但是配置文件明明还没有把那句 skip-grant-tables 注释掉啊?刷新会忽略掉刚才修改的配置文件么?

反正,后来还是把my.ini里那句 skip-grant-tables 注释了。。

四、使用你的密码登录吧!

首先,输入 mysql -u root -p ,然后输入刚才设置的密码,你就可以成功进入啦!

最后,请养成好习惯,记住你的宝贝密码。:)

【小结】

本来想重新安装MySQL的心都有了,但是还是坚持到问题成功解决,过程是有点痛苦,但是结局是美好的。

更多相关文章

  1. Windows环境下Android(安卓)Studio系列4—界面介绍
  2. android中HttpURLConnection调用getResponseCode()时崩溃 解决方
  3. Android空引用问题的解决方法——on a null object reference
  4. Windows环境下Android(安卓)源码模块下载
  5. android读取assets大于1M文件的解决方法
  6. 几个Android小错误解决方法
  7. Create Native iOS, Android, Mac and Windows apps in C#
  8. CheckBox android:paddingLeft 不兼容问题解决方法
  9. windows下搭建cocos2dx Android开发环境

随机推荐

  1. 新建项目出现android support library问
  2. 利用View.inflate加载xml
  3. Android WebRTC
  4. 单独编译android模块
  5. 关于Android中android.content.res.Resou
  6. android(25)(android下实现多线程断点下载)
  7. Android Studio新建项目Rendering Proble
  8. Android电池管理
  9. android 蓝牙driver的启动流程
  10. Android中的compileSdkVersion,minSdkVers