MySQL8.0忘记密码导致无法登录解决方案

MySQL8.0忘记密码导致无法登录解决方案

安装MySQL后很久没有使用,近期因新系统开发需要建数据库,发现无法连接MySQL,在此记录解决问题的过程备忘。

操作系统:windows11

MySQL版本:MySQL 8.0.33

  1. 问题出现:用root账号登录数据库时出现如下提示信息:
Access denied for user 'root'@'localhost' (using password: YES) //提示使用密码登录,访问被拒绝

经过排查分析发现,MySQL服务启动正常、端口号正常,很大可能是因为用户密码错误。考虑跳过用户验证修改密码。查询各种解决方案,尝试多次后,发现没有能够解决问题的完整方案,总结各个方案可用的部分,尝试后,成功修改密码,具体过程如下:

1、已管理员身份启动CMD,输入如下命令,停止MySQL服务

C:\Windows\System32>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。

2、修改MySQL安装目录下的my.ini文件,在[mysqld]下添加skip-grant-tables,添加后如下:

[mysqld]
skip-grant-tables
...

3、输入如下命令,重新启动MySQL服务

C:\Windows\System32>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。

4、输入如下命令,跳过密码验证,登录MySQL

>mysql -u root

5、输入如下命令,将用户密码置空

mysql> update user set authentication_string="" where user="root";
Query OK, 1 row affected (0.01 sec)

6、输入如下命令,更新数据库

mysql> flush privileges

7、输入如下命令,设置新密码(root@localhost没有单引号,网上很多解决方案给了单引号,命令执行会失败,提示语法错误)

mysql> alter user root@localhost identified by "112358";
Query OK, 0 rows affected (0.00 sec)

8、再次输入如下命令,更新数据库

mysql> flush privileges

9、退出数据库

mysql> quit
Bye

10、按照【步骤1】停止MySQL服务,删除my.ini文件中的skip-grant-tables

11、重新启动MySQL服务(命令参考同步骤3)

12、用新密码登录MySQL,成功

C:\Users\******>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.33 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值