忘记MySQL密码解决方法---MySQL 8.0版本

MySQL的登陆密码忘记了。在网上找了很久,各种方法都不适合。后面发现,其实是因为版本的问题。其实整体的步骤与版本是无关的,只是其中一条语句,在5.7版本的是mysqld --skip-grant-tables,但是在8.0版本中应该是mysqld --console --skip-grant-tables --shared-memory。具体操作步骤总结如下,参考连接

第一步:在命令行输入net stop mysql命令关闭mysql服务

第二步:使用--skip-grant-tables选项启动mysql服务(服务器将不加载权限判断,任何用户 都能访问数据库)

              在命令行输入 mysqld --console --skip-grant-tables --shared-memory  (其实这句话也可以加到D:\mysql-8.0.20-winx64\mysql.ini文件中,这种方法我就不讲了)

              命令运行之后,用户无法再输入指令,此时如果在任务管理器中可以看到名称为 mysqld的进程,则表示可以用root用户 登录服务器了

第三步:打开另一个命令行窗口,输入不加密码的登录命令

              mysql -u root

              登录成功后如果修改密码,必须先使用flush privileges语句刷新权限表,否则会报错,错误的大体意思是”目前处在skip-grant-tables情境下,不可以修改密码“

    然后,修改密码,使用命令ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';(不区分大小写)结果显示:Query OK, 0 rows affected (2.72 sec),表示密码策略修改成功!

第四步:将输入mysqld --skip-grant-tables命令的命令行窗口关闭,接下来就可以使用新密码登录mysql服务器了

 

 

mysqld --console --skip-grant-tables --shared-memory的输入环境参考下图:

 

posted on 2020-10-30 16:50  WoLi  阅读(421)  评论(0编辑  收藏  举报

导航