当前位置: 首页 > news >正文

Windows中MySQL 8.x版本忘记密码如何重设

Windows中MySQL 8.x版本忘记密码如何重置

文章目录

  • Windows中MySQL 8.x版本忘记密码如何重置
    • 一、前言
    • 二、重置密码操作
      • 1、停止MySQL服务
      • 2、以安全模式启动MySQL服务
      • 3、无密码登录mysql
      • 4、重置登录密码
      • 5、验证密码是否重置成功
    • 三、最后我想说

一、前言

好久之前在电脑下载的MySQL,最近准备使用MySQL的时候发现忘记密码了,试了很多次印象中的密码都无法登录,所以只好上网搜索一下在忘记密码的情况下如何重置密码,网上有很多中方法,但是我试过很多都无法解决,对于我而言,也就是说我使用其中一个人的方法无法解决,然后去使用另一个人的方法也无法解决,然后我综合了网上很多人的方法之后最后成功了,所以在这里我将我总结的方法写出来,详细一点,供大家参考。

二、重置密码操作

1、停止MySQL服务

我们首先打开cmd终端,执行如下命令:

net stop mysql

在这里我们可能会出现第一个问题,那就是显示服务名无效。出现这个错误的原因是系统中并没有注册mysql到服务中,即当前路径下没有mysql服务。如果出现这个错误,我们就需要进入MySQL安装目录下的bin目录中继续执行如下命令:

mysqld --install

执行上述命令之后如果出现Service successfully install代表你已经安装成功。

如果执行上述命令之后出现Install/Remove of the Service Denied则需要使用管理员的身份运行。

然后再执行上面的停止命令,出现如下图即停止成功:

在这里插入图片描述

这里还会出现一个问题那就是:

在这里插入图片描述

如果出现入上图所示问题,我们需要先启动mysql服务。

我们继续使用管理员的权限在bin目录下执行如下启动命令:

net start mysql

运行这个命令也会出现新的问题:

在这里插入图片描述

这个时候我们需要删除mysql下的data文件,重新执行mysqld --initialize 命令就可以在当前路径下生成data文件夹,再执行net start mysql 就可以启动mysql。

如果还是无法启动的话,我们再次输入如下命令:

mysqld --console

如果出现以下显示端口被占用问题:

在这里插入图片描述

我们再执行如下命令查看3306端口进程ID:

netstat -aon|findstr "3306"

在这里插入图片描述

从这张图我们可以看见3306端口被占用,进程ID 是6884,这个时候我们需要执行如下命令结束当前进程:

taskkill /f /pid 6884

在这里插入图片描述

然后再执行启动服务就可以成功启动了。

在这里插入图片描述

启动完之后我们再执行停止命令即可。

2、以安全模式启动MySQL服务

紧接着我们使用管理员的身份登录终端,然后进入MySQL安装目录下的bin目录中执行如下命令:

mysqld -console --skip-grant-tables --shared-memory

如果输入执行之后没有返回的话我们就再开一个cmd重新使用管理员身份登录终端,然后进入MySQL安装目录下的bin目录中执行以下命令:

mysqld --console --skip-grant-tables --shared-memory

在这里插入图片描述

出现如上信息就说明我们已经成功跳过mysql的密码登录了。

3、无密码登录mysql

执行完以上操作之后,我们再重新开一个cmd,还是使用管理员身份登录终端,然后进入MySQL安装目录下的bin目录中执行以下命令:

mysql -u root -p

此时会显示让你输入密码,直接回车就可以成功连接mysql。

在这里插入图片描述

4、重置登录密码

我们依次执行如下命令:

UPDATE mysql.user SET authentication_string=null WHERE User='root';
FLUSH PRIVILEGES;
exit;

在这里插入图片描述

执行完之后我们再登录一遍mysql,再次在mysql中执行如下语句重置密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';

在这里插入图片描述

到这里我们的密码重置就成功了,但是这个有个问题那就是网上有很多重置密码的语句是执行不了的,例如:

use mysql;
UPDATE user SET authentication_string = password ('[$Password]') WHERE User = 'root';

我们执行这个命令会报错:

在这里插入图片描述

出现这个报错是因为MySQL 8.0.15(也可能早于此)上,这个PASSWORD()功能没有作用了,应该是被废除了。我们需要执行我上面说的新的指令才能执行成功。

5、验证密码是否重置成功

我们首先关闭所有的终端,然后在新建终端输入启动mysql服务指令:

net start mysql

现在服务启动成功之后,我们再次执行登录指令:

mysql -u root -p

然后输入我们重置后的密码进行登录。

在这里插入图片描述

可以看见我们可以成功登录了,证明重置成功了。

如果登录mysql的时候报错[ERROR 1130 (HY000): Host '' is not allowed to connect to this MySQL server [duplicate\]](https://stackoverflow.com/questions/19101243/error-1130-hy000-host-is-not-allowed-to-connect-to-this-mysql-server)那么证明你还没有重置成功可以从第一步重新再试一遍。

三、最后我想说

本期博客针对的是Windows中MySQL 8.x版本的重置密码操作,如果你是其他操作系统或者其他MySQL版本可能无法成功重置,需要去网上看看其他版本的操作方法,最后希望本次博客能够帮助你们成功重置密码,我也是研究了好一会才解决的,比较麻烦,整理总结不易,期待得到你们的支持,谢谢!

http://www.lryc.cn/news/8462.html

相关文章:

  • 【信管12.1】信息文档管理与配置管理
  • 一文搞懂Linux的标准输出/错误重定向
  • 【OJ】计数的梦
  • 【项目实战】MySQL使用CONCAT字符串拼接函数实现与特殊字符的拼接
  • OpenCV实战(11)——形态学变换详解
  • SPI协议详解(Standard SPI、Dual SPI和Queued SPI)
  • 【代码随想录二刷】Day15-二叉树-C++
  • C++为什么能重夺年度语言?
  • 视频监控实时接入——以海康威视为例(2023.2.16)
  • 推荐系统[一]:超详细知识介绍,一份完整的入门指南,解答推荐系统是什么。
  • 新手小白入门必看!如何批量注册Twitter账号?
  • 虚拟环境的创建以及labelme的使用教程
  • CSS中的BFC详细讲解(易懂)
  • 华为3面,官网显示面试通过了...开始泡池子,进入漫长等待期
  • 【新2023】华为OD机试 - 构成的正方形数量(Python)
  • ElasticSearch之RestClient操作索引库和文档
  • Lp正则化
  • 云原生 -- Docker进阶(Docker-compose,Docker网络简单介绍)
  • taskset命令:让进程运行在指定CPU上
  • Pod基本概念与Pod应用生命周期
  • DDL 数据定义语言
  • 设计模式概述
  • 华为OD机试 - 箱子之形摆放(Python)| 真题+思路+考点+代码+岗位
  • 第九章:创建用户和用户权限
  • 如何制定人生目标
  • 用户认证概述
  • XQuery FLWOR + HTML
  • MySQL用户管理
  • C++【模板初阶】
  • 华为OD机试 - 磁盘容量(Python)| 真题+思路+考点+代码+岗位