我的这篇写的比较细致,如果闲啰嗦的小伙伴可以直接跳转链接到
http://blog.sina.com.cn/s/blog_cca6ddf80102w61m.html
前言
今天计划给一台N年前服务器的数据库做备份任务,然而我试遍了密码...还是无法登录数据库.扒各种备份文件还是找不到..相信各位小伙伴也会有这种经历.
然而机智的我已经找到了解决办法~
那就是 skip-grant-tables
跟着我一起来做吧
windows系统下哦~ linux同理
准备
首先要做的第一步就是找到mysql安装目录..
这个目录需要慢慢找。。。我也帮不了你。。毕竟每个人的安装路径都不一样
如果实在找不到 可以 全盘搜索 MySQL
如果你找到了这个目录,我们就可以开始啦
开始
首先在mysql根目录下有一个 my.ini 的文件
打开它,搜索 [mysqld]
然后在下面加上这行神奇的代码 skip-grant-tables
参考下面图片
一定要加对地方啊~
ps:这行代码我加的是[mysqld]下面,但是好像加在 [mysql]也有作用,谁有空了可以测试一下;测试结果写在下面的评论里~
代码添加完之后
打开服务,重启mysql
ps:找不到服务的可以自己去百度......
接下来进入 bin目录,就是my.ini所在文件夹的 bin
在DOS环境下运行该目录(如果不会dos的可以按照下面的操作)
会dos的可以忽略这句话....(在该目录下按下快捷键shift,并在空白处点击鼠标右键,选择在此处打开命令窗口),如下图
如果不按shift直接点右键是不会出来这个命令的!
如果不在空白地方点右键,也是不会出来这个命令的
不要问我为什么知道这两个问题。。。。
好了,接下来开始命令行操作啦
输入mysql -uroot -p 按下回车 如下图
因为在上面我们已经加了这段神奇的代码 skip_grant_tables,所以在此处我们不需要输入密码
直接再按一次回车,结果如下图
出现这些就代表你已经成功了一半,不需要密码就可以进入数据库了。
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
Comments | 1 条评论
曾经因为忘记数据库密码,而卸载重装的人…