背景:每次mysql忘记密码后都要百度一波跟着解决,有时候又搜不到一个好的教程,这次又遇到了忘记密码的情况,所以就自己记录一下吧,方便以后查阅。
1.停止服务(net stop mysql),然后输入命令mysqld --skip-grant-tables(跳过用户验证,就是可以直接不需要密码登录mysql)
2.然后重新开启一个cmd窗口(上面的这个cmd窗口不能关闭),输入mysql 就直接进入mysql了 无需密码
此时开始修改密码 先选择mysql这个库
尝试用了 update user set password = password ( "123456 " ) where user = "root"; 发现不行 。
然后查看一下表结构 desc user; 发现表里面都没有password这个字段
但是有authentication_string字段,所以直接更新密码: update user set authentication_string=password('123456') where user="root" and host='localhost';
3.刷新缓存,使修改立即生效: flush privileges;
4.然后启动服务 登录,登录进去后不管输入啥命令都提示 Unknown error 1820
解决方法:alter
user
user
() identified
by
"123456"; (方法来源:
https://www.jb51.net/article/172183.htm)
5.输入一个查询数据库的命令 show databases; 正常执行,成功