我的这篇写的比较细致,如果闲啰嗦的小伙伴可以直接跳转链接到

http://blog.sina.com.cn/s/blog_cca6ddf80102w61m.html

 

前言

今天计划给一台N年前服务器的数据库做备份任务,然而我试遍了密码...还是无法登录数据库.扒各种备份文件还是找不到..相信各位小伙伴也会有这种经历.

然而机智的我已经找到了解决办法~

那就是 skip-grant-tables

跟着我一起来做吧

windows系统下哦~ linux同理

准备

首先要做的第一步就是找到mysql安装目录..

这个目录需要慢慢找。。。我也帮不了你。。毕竟每个人的安装路径都不一样

如果实在找不到 可以 全盘搜索 MySQL

如果你找到了这个目录,我们就可以开始啦

开始

首先在mysql根目录下有一个 my.ini 的文件

windows系统解决忘记mysql密码

打开它,搜索 [mysqld]

然后在下面加上这行神奇的代码   skip-grant-tables

参考下面图片

windows系统解决忘记mysql密码

一定要加对地方啊~

ps:这行代码我加的是[mysqld]下面,但是好像加在  [mysql]也有作用,谁有空了可以测试一下;测试结果写在下面的评论里~

代码添加完之后

打开服务,重启mysql

windows系统解决忘记mysql密码

ps:找不到服务的可以自己去百度......

接下来进入 bin目录,就是my.ini所在文件夹的 bin

在DOS环境下运行该目录(如果不会dos的可以按照下面的操作)

会dos的可以忽略这句话....(在该目录下按下快捷键shift,并在空白处点击鼠标右键,选择在此处打开命令窗口),如下图

windows系统解决忘记mysql密码

如果不按shift直接点右键是不会出来这个命令的!

如果不在空白地方点右键,也是不会出来这个命令的

不要问我为什么知道这两个问题。。。。

好了,接下来开始命令行操作啦

输入mysql -uroot -p  按下回车   如下图

windows系统解决忘记mysql密码

因为在上面我们已经加了这段神奇的代码 skip_grant_tables,所以在此处我们不需要输入密码

直接再按一次回车,结果如下图

windows系统解决忘记mysql密码

出现这些就代表你已经成功了一半,不需要密码就可以进入数据库了。

pspspspspsps:::::::

如果 你的my.ini没有修改正确,或者没有 在服务里面重启mysql,那么会得到这样一个错误

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)

或者

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

需要你去检查上面步骤的操作是否有误了.

psendendendendendendend::::

接下来开始修改密码啦~

输入以下代码

use mysql;

update user set password=password('123456') where user='root';

好了,你的数据库密码已经被重置为 123456了。

当然不要忘了,当密码修改完成之后

把my.ini 里面的skip_grant_tables 这行代码删除,然后去服务里面重启mysql。

总结

1.修改my.ini,添加 skip_grant_tables

2.重启mysql服务

3.通过命令行进入数据库,修改数据库密码

4.修改my.ini,删除skip_grant_tables

5.重启mysql服务

 

后记

其实最重要的,还是要做好备份,做好记录,数据库密码是很重要的东西,把密码保存在安全的地方,就不会像我一样着急了。。。

感谢  https://blog.csdn.net/w892824196/article/details/80106723

感谢  http://blog.sina.com.cn/s/blog_cca6ddf80102w61m.html


欣赏才华