mysql 忘记 root 密码的解决办法(针对不同 mysql 版本)

news2024/11/17 23:45:08

文章目录

  • 1.前提说明
    • 1.1 cmd 窗口打开方式
    • 1.2 mysql 服务相关命令知识补充
    • 1.3 三个 mysql 版本说明
    • 1.4 运行时可能发生的报错问题
      • 🍀 跳过密码授权命令报错
      • 🍀 修改密码时报错
      • 🍀 ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost'
  • 2.MySQL 5.7.6-(不包括 5.7.6)
  • 3.MySQL 5.7.6+(包括 5.7.6)
  • 4.MySQL 8.0

1.前提说明

1.1 cmd 窗口打开方式

cmd 命令窗口请以“管理员”身份打开运行,否则可能提示权限不足。(net 命令需要管理员权限)

1.2 mysql 服务相关命令知识补充

# 安装 mysql 服务
mysqld -install

# 安装 mysql 服务并指定服务名称,格式:mysqld -install [ServiceName]
# 如果不指定服务名,默认的服务名称为 mysql
mysqld -install mysql80

# 移除 mysql 服务,格式:mysqld --remove [ServiceName]
mysqld --remove mysql80

# 启动 mysql80 服务,格式:net start [ServiceName]
net start mysql80

# 查看正在运行的所有服务
net start

# 查看特定服务,通过字符串过滤完成,格式:net start | findstr [ServiceName]
net start | findstr mysql80

# 停止 mysql80 服务,格式:net stop [ServiceName]
net stop mysql80

1.3 三个 mysql 版本说明

文章共给出三个 MySQL 阶段版本的忘记密码解决办法,分别是:

  • MySQL 5.7.6 以前
  • MySQL 5.7.6 及以后(MySQL 8.0 以前)
  • MySQL 8.0+

MySQL 有一个 5.7.6 分界线,是由于从 MySQL 5.7.6 版本开始,mysql.user 表中的 password 列已被废弃,并且从 MySQL 8.0 版本中完全移除。在 MySQL 5.7.6 及以后的版本中,密码存储在 authentication_string 列中,该列使用的是新的身份验证插件和密码哈希算法。

MySQL 5.7.6 官方文档原文:

The authentication_string column in the mysql.user table now stores credential information for all accounts. The Password column, previously used to store password hash values for accounts authenticated with the mysql_native_password and mysql_old_password plugins, is removed.

1.4 运行时可能发生的报错问题

如果严格按照我的步骤来,应当是不会报错的,但如果漏掉了某些步骤,可能会发生命令报错。

🍀 跳过密码授权命令报错

执行 mysqld --console --skip-grant-tables --shared-memory 时窗口未卡主,且有 [ERROR]

image-20240625180832782

这是由于没有执行我给的步骤 1“停止 MySQL 服务”,因此,在执行 net stop [mysql服务名] 后,窗口就会卡主且不会有报错了。

image-20240625180734331

🍀 修改密码时报错

image-20240625181124106

报错:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

这是由于没有关闭“跳过密码授权”窗口导致的,因此只需要关闭授权窗口即可。

🍀 ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’

这是由于关闭了 mysql 服务导致的,因此只需要通过 net start [ServiceName] 打开 Mysql 服务即可。

例如:

net start mysql57

2.MySQL 5.7.6-(不包括 5.7.6)

这里以 MySQL 5.7.5 作为示例。

  1. 打开 cmd,停止 MySQL 服务,格式:net stop [服务名称]。我这里的服务名称是 MySQL575,你的可能是 mysql,因为 mysql 是默认的服务名称。

    net stop mysql575
    

    服务名称查找方式:win + r 打开“运行”,输入 services.msc,查找你的 MySQL 服务名称。

    image-20240625174905477

  2. 跳过密码授权。

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

    注意这个 mysqld 需要在环境变量下配置到 mysql 的 bin 目录,或者直接在 bin 目录下执行该指令。

    image-20240625175028799

  3. 打开一个新的 cmd 窗口,输入 mysql 可直接进行 mysql 管理。注意“跳过密码授权”这个 cmd 窗口不要关闭。

    image-20240625175821605

  4. 清空密码

    UPDATE mysql.user SET password=”” WHERE user=“root”;
    
    exit;
    
  5. 接着,一定要关闭“跳出密码授权”窗口,在新窗口启动 mysql 服务并进入 mysql 管理。

    # 1.启动 mysql 服务。格式:net start [服务名称]
    net start mysql575
    
    # 2.进入 mysql,无密码
    mysql -uroot
    
  6. 修改密码并刷新权限。

    -- 1.修改密码
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
    
    
    -- 2.刷新权限
    flush privileges;
    
    -- 3.退出
    exit;
    
  7. 再次登录。

    mysql -uroot -p123456
    

    image-20240625175603370

3.MySQL 5.7.6+(包括 5.7.6)

这里以 MySQL 5.7.35 作为示例。

  1. 打开 cmd,停止 MySQL 服务,格式:net stop [服务名称]。我这里的服务名称是 MySQL57,你的可能是 mysql,因为 mysql 是默认的服务名称。

    net stop mysql57
    

    服务名称查找方式:win + r 打开“运行”,输入 services.msc,查找你的 MySQL 服务名称。

    image-20240625164735532

  2. 跳过密码授权。

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

    注意这个 mysqld 需要在环境变量下配置到 mysql 的 bin 目录,或者直接在 bin 目录下执行该指令。

    image-20240625164943795

  3. 打开一个新的 cmd 窗口,输入 mysql 可直接进行 mysql 管理。注意“跳过密码授权”这个 cmd 窗口不要关闭。

    image-20240625175953864

  4. 清空密码

    UPDATE mysql.user SET authentication_string=”” WHERE user=“root”;
    
    exit;
    
  5. 接着,一定要关闭“跳出密码授权”窗口,在新窗口启动 mysql 服务并进入 mysql 管理。

    # 1.启动 mysql 服务。格式:net start [服务名称]
    net start mysql57
    
    # 2.进入 mysql,无密码
    mysql -uroot
    
  6. 修改密码并刷新权限。

    -- 1.修改密码
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "123456";
    
    -- 2.刷新权限
    flush privileges;
    
    -- 3.退出
    exit;
    
  7. 再次登录。

    mysql -uroot -p123456
    

    image-20240625180123964

4.MySQL 8.0

  1. 打开 cmd,停止 MySQL 服务,格式:net stop [服务名称]。我这里的服务名称是 MySQL80,你的可能是 mysql,因为 mysql 是默认的服务名称。

    net stop mysql80
    

    服务名称查找方式:win + r 打开“运行”,输入 services.msc,查找你的 MySQL 服务名称。

    image-20240625171529375

  2. 跳过密码授权。

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

    注意这个 mysqld 需要在环境变量下配置到 mysql 的 bin 目录,或者直接在 bin 目录下执行该指令。

    image-20240625170538451

  3. 打开一个新的 cmd 窗口,输入 mysql 可直接进行 mysql 管理。注意“跳过密码授权”这个 cmd 窗口不要关闭。

    image-20240625162953575

  4. 清空密码

    UPDATE mysql.user SET authentication_string=”” WHERE user=“root”;
    
    exit;
    
  5. 接着,一定要关闭“跳出密码授权”窗口,在新窗口启动 mysql 服务并进入 mysql 管理。

    # 1.启动 mysql 服务。格式:net start [服务名称]
    net start mysql80
    
    # 2.进入 mysql,无密码
    mysql -uroot
    
  6. 修改密码并刷新权限。

    -- 1.修改密码
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "123456";
    
    -- 2.刷新权限
    flush privileges;
    
    -- 3.退出
    exit;
    
  7. 再次登录。

    mysql -uroot -p123456
    

    image-20240625163503623

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1891145.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安卓稳定性之crash详解

目录 前言一、Crash 的基本原理二、Crash 分析思路三、实例分析四、预防措施五、参考链接 前言 在开发和测试 Android 应用程序时,遇到应用程序崩溃是很常见的情况。 Android 崩溃指的是应用程序因为异常或错误而无法正常执行,并且导致应用强制关闭。 一…

RabbitMQ 进程内流控(Flow Control) 源码解析

1. 概述 1.1 为什么要流控? 流控主要是为了防止生产者生产消息速度过快,超过 Broker 可以处理的速度。这时需要暂时限制生产者的生产速度,让 Broker 的处理能够跟上生产速度。 Erlang进程之间不共享内存,每个进程都有自己的进程邮…

什么是眼球凹渲染?如何在Varjo Base中设置眼球追踪与凹渲染功能

当谈到Varjo耳机时,它们总是与超高分辨率显示器和有凹渲染联系在一起,从而能够高效地渲染到高像素的显示器上。 本篇博文的主题是分享一些可用于OpenXR应用程序的新设置,但在此之前,让我们先了解关于有凹渲染的一些背景。有凹渲染…

【计算机毕业设计】基于Springboot的B2B平台医疗病历交互系统【源码+lw+部署文档】

包含论文源码的压缩包较大,请私信或者加我的绿色小软件获取 免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者…

Python爬取国家医保平台公开数据

国家医保服务平台数据爬取python爬虫数据爬取医疗公开数据 定点医疗机构查询定点零售药店查询医保机构查询药品分类与代码查询 等等,数据都能爬 接口地址:/ebus/fuwu/api/nthl/api/CommQuery/queryFixedHospital 签名参数:signData {dat…

H5打包失败:JS堆内存不足

傻子没看懂报错,像个无头苍蝇 解决方式:清空缓存,重启电脑,打包成功。

二叉树中序遍历-递归法详解-数据结构与算法

首先看下中序遍历的代码:(左 跟 右) 其首先要接受一个根结点root作为参数 判断根节点是否为NULL 不为NULL则递归遍历左子树 ①我们把树根结点A传递给它 其左结点为B,右结点为C ②首先我们要检查root是否为NULL 其不为NULL …

使用pyinstaller 如何打包python项目

参考:【python项目正确打包方法-哔哩哔哩】 https://b23.tv/EDB6zbG Pyinstaller 详解多种打包过程(去坑,填坑)。_pyinstaller -f -w-CSDN博客 1.打开命令提示符: 找到python项目所在位置,输入cmd即可 2. 安装pipenv: 在命令提示符&#…

1000T的文件怎么能快速从南京传到北京?最佳方案你肯定想不到

今天刷面试题看到一个有意思的面试题, 1000T的文件怎么能以最快速度从南京传到北京? 网络传输 首先我们考虑通过网络传输,需要多长时间。 我特地咨询了在运营商工作的同学,目前带宽: 家庭宽带下行最大1Gbps&#…

x264 编码器汇编模块介绍

aarch64汇编架构 解释:AArch64 是 ARM 架构的 64 位版本,也称为 ARMv8-A特点: 64位寻址能力,支持更大的地址空间,理论上可达16EB(Exabyte)使用64位宽的寄存器,有31个通用寄存器(X0-X30),外加一个链接寄存器(X31)支持扩展的 NEON SIMD 指令集,提供更多的执行单元和…

电脑显示由于找不到MSVCP140.dll,无法继续执行代码

电脑已经成为我们生活和工作中不可或缺的工具,然而,在使用电脑的过程中,我们常常会遇到一些错误提示,其中之一就是“电脑显示由于找不到MSVCP140.dll是怎么回事?”这个问题。小编将详细介绍该问题的原因、解决方法以及…

新版本发布丨昂辉科技EasySAR-Configurator V1.2.0再启航

昂辉科技新一代跨平台高性能AUTOSAR配置工具EasySAR-Configurator V1.2.0全新版本重磅发布!产品基于Web架构前后端分离的方式开发,可提供SaaS部署,能够实现精准配置和最大限度的代码裁剪,且配备标准的约束限制、配置验证、代码生成…

技术成神之路:设计模式(二)建造者模式

1.定义 建造者模式(Builder Pattern)是一种创建型设计模式,它允许你分步骤创建复杂对象,而不必直接调用构造函数。建造者模式特别适合那些包含多个组成部分并且构造过程复杂的对象。 2. 结构 建造者模式的主要组成部分包括&#…

基于字符和词特征融合的恶意域名检测

传统的恶意域名检测方法在检测由域名生成算法(DGA)随机生成的恶意域名方面性能不佳,尤其是对于那些由随机单词组成的域名。文章提出了一种新的检测算法,通过融合字符和词特征来提高对恶意域名的检测能力,特别是对于更具…

【RT摩拳擦掌】如何构建RT AVB switchendpoint平台

【RT摩拳擦掌】如何构建RT AVB switch&endpoint平台 一,文档简介二,平台构建2.1 软硬件情况2.2 配置RT1170 AVB端点2.2.1 1块MIMXRT1170开发板做talker配置2.2.2 2块MIMXRT1170开发板做listener配置 2.3 AVB Switch 配置2.3.1 MOTU AVB Switch2.3.2 …

【鸿蒙学习笔记】@Prop装饰器:父子单向同步

官方文档:Prop装饰器:父子单向同步 [Q&A] Prop装饰器作用 Prop装饰的变量可以和父组件建立单向的同步关系。Prop装饰的变量是可变的,但是变化不会同步回其父组件。 [Q&A] Prop装饰器特点 1・Prop装饰器不能在Entry装饰的…

关于ant design vue 使用Modal无法关闭弹窗的解决思路

文章目录 1: 出现问题的版本2.出现问题(1)ant design 的问题(2)poina的提示报错 3.正确版本总结 1: 出现问题的版本 "ant-design-vue": "^3.2.20", "pinia": "^2.1.7", "vue"…

Mybatis Plus 自动填充注解 @TableField(fill = FieldFill.INSERT_UPDATE)

第一步:在需要自动填充的位置加上注解 通过在创建时间和修改时间上添加 fill 填充字段 进行自动填充 第二步:要想实现自动填充还需要实现MetaObjectHandler接口,在这里实现自动填充的逻辑 Component public class MyMetaObjectHandler …

python sklearn机械学习-数据预处理

🌈所属专栏:【机械学习】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您…

filex文件系统功能预研

filex资源 filex的源码路径有两个: 一个是azure-rtos下的filex:azure-rtos/filex (github.com)一个是eclipse-threadx下的filex:eclipse-threadx/filex filex的文档地址:rtos-docs/rtos-docs/filex 第三方文档:Thre…