京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

重置MySQL 8.0 Root暗码的简便方法小结

2024-11-3 23:32| 发布者: db4d5a85| 查看: 179| 评论: 0

摘要: 目录办理方案1. 检查是否输入正确的暗码2. 使用“跳过权限表”的方式重置 root 暗码2.1 停止 MySQL 服务2.2 以跳过权限表模式启动 MySQL2.3 重新打开另一个命令提示符窗口,登录 MySQL2.4 重置&
目录

在Windows情况下安装MySQL数据后,假如忘记了 MySQL 8.0 的 root 暗码,不必担心!通过 --skip-grant-tables 和 named-pipe 模式登录后,只需几步简朴的 SQL 命令即可重置暗码:刷新权限表、修改暗码、再刷新权限,末了重启 MySQL 服务,你就能使用新暗码顺利登录数据库!

问题如下:

出现 [code]ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)[/code] 表现 MySQL 拒绝了你提供的 [code]root[/code] 用户的暗码。大概的原因包罗:

  1. 暗码不正确:你提供的暗码和 [code]root[/code] 用户的现实暗码不匹配。
  2. MySQL 安装时的问题:大概在安装 MySQL 时设置的 [code]root[/code] 用户暗码不正确,大概被误改。
  3. 权限问题:[code]root[/code] 用户的权限或账户状态大概有问题

办理方案

1. 检查是否输入正确的暗码

确认你输入的暗码是否正确,留意以下几点:

确认你输入的暗码是否正确,留意以下几点:

  • 暗码区分巨细写。
  • 确保没有意外的空格或字符被包罗在暗码中。
  • 确保你尝试的是 [code]root[/code] 用户的暗码,而不是其他用户。

2. 使用“跳过权限表”的方式重置 root 暗码

假如你确认暗码正确但仍然无法登录,大概你忘记了 [code]root[/code] 暗码,可以通过“跳过权限表”的方式重置暗码。以下是步骤:

2.1 停止 MySQL 服务

在 Windows 下,你可以通过命令提示符停止 MySQL 服务:

[code]net stop mysql [/code]

假如你使用的是差别的 MySQL 服务名称(如 [code]mysql80[/code]),请将命令改为:

[code]net stop mysql80 [/code]

问题一:假如执行net stop mysql后,出现“C:\Users\admin>net stop mysql80 发生体系错误 5。 拒绝访问。”

出现 [code]体系错误 5[/code],并显示“拒绝访问”,通常意味着你没有富足的权限来停止 MySQL 服务。这是一个权限问题,通常是因为你未以管理员身份运行命令提示符。

办理方法:

方法一:以管理员身份运行命令提示符

Windows 中的一些操纵(如启动和停止服务)需要以管理员权限执行。请按以下步骤操纵:

  • 打开命令提示符

    • 点击 开始 菜单,在搜索框中输入 [code]cmd[/code]。
    • 在搜索结果中,右键点击 命令提示符,然后选择 以管理员身份运行
    • 在以管理员权限运行的命令提示符中,输入以下命令:
[code]net stop mysql80[/code]

大概,假如你的 MySQL 服务名称是 [code]mysql[/code] 而不是 [code]mysql80[/code],则输入:

[code]net stop mysql [/code]
  • 检查 MySQL 服务名称

在某些情况下,MySQL 的服务名称大概不是 [code]mysql80[/code]。你可以通过以下步骤检查你体系中的 MySQL 服务名称:

  • 打开 命令提示符(以管理员身份运行)。

  • 输入以下命令查看所有服务:

[code]sc query [/code]

在返回的列表中找到雷同 [code]mysql[/code] 或 [code]mysql80[/code] 的条目,记下服务名称。

大概,你可以专门查找 MySQL 服务:

[code]sc query | findstr /i "mysql" [/code]

找到正确的服务名称后,再使用正确的服务名称来停止 MySQL 服务。

方法二:使用 Windows 服务管理器停止 MySQL 服务

假如不方便通过命令行操纵,也可以使用 Windows 服务管理器来停止 MySQL 服务:

  • 按 Win + R 打开 运行 窗口,输入 [code]services.msc[/code],然后按回车。
  • 在服务管理器中找到 [code]MySQL80[/code] 或雷同 [code]MySQL[/code] 的服务。
  • 右键点击该服务,然后选择 停止

2.2 以跳过权限表模式启动 MySQL

使用 --skip-grant-tables 选项启动 MySQL。这个选项允许你在没有暗码的情况下登录 MySQL。

  • 打开命令提示符,进入 MySQL 的安装目录,通常是 C:\Program Files\MySQL\MySQL Server <版本号>\bin。
  • 使用以下命令启动 MySQL 服务器(跳过权限表):
[code]mysqld --skip-grant-tables [/code]

问题二:执行[code]mysqld --skip-grant-tables[/code] 命令,再执行mysql -u root报错

执行 mysqld --skip-grant-tables 命令,再执行mysql -u root,出现ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061),表明 MySQL 服务并未成功启动。

排查原因和办理方法:

1. 确认 MySQL 是否成功启动

执行 [code]mysqld --skip-grant-tables[/code] 命令后,通常会显示一些输出。假如命令行未响应且没有提示 MySQL 已启动,大概说明启动失败。

在执行该命令时,请查看是否有错误输出。假如启动失败,大概会遇到雷同以下问题:

  • 配置文件错误:检查 [code]my.ini[/code] 文件中的端口设置或其他参数。
  • 数据目录错误:确保 MySQL 的数据目录可访问且完整。

假如没有看到任何输出,可以查看 MySQL 错误日志。

2. 查看 MySQL 错误日志

MySQL 错误日志中会包罗具体的启动错误信息。日志通常位于 MySQL 数据目录下,文件名雷同于 [code]mysql.err[/code] 或 [code]error.log[/code]。你可以打开该文件,查找任何与启动失败相关的错误。

日志文件通常位于:

[code]# 路径为安装路径MySQL Server xx\Data\mysql.err下 C:\ProgramData\MySQL\MySQL Server 8.0\Data\mysql.err[/code]

大概不是mysql.err,需要看一下mysql.ini中配置,我的配置中文件名称为log-error="DESKTOP-ONBJR20.err"

可以通过下面命令查看文件内容:

[code]type DESKTOP-ONBJR20.err # 大概 more DESKTOP-ONBJR20.err[/code]
  • 错误日志信息如下:
[code]2024-09-24T03:22:02.873676Z 0 [ERROR] [MY-010131] [Server] TCP/IP, --shared-memory, or --named-pipe should be configured on NT OS 2024-09-24T03:22:02.873977Z 0 [ERROR] [MY-010119] [Server] Aborting 2024-09-24T03:22:04.080405Z 0 [ERROR] [MY-013183] [InnoDB] Assertion failure: trx0sys.cc:643:UT_LIST_GET_LEN(trx_sys->mysql_trx_list) == 0 thread 32636[/code]

从错误日志来看,MySQL 在启动过程中遇到了几个问题,导致无法成功启动。这是关键的错误信息:

  1. [ERROR] [MY-010131]: [code]TCP/IP, --shared-memory, or --named-pipe should be configured on NT OS[/code]

    • 这个错误表明在 Windows 情况中,MySQL 需要正确配置网络选项。它提到了需要使用 [code]TCP/IP[/code]、[code]shared-memory[/code] 或 [code]named-pipe[/code] 来举行通讯。
  2. [ERROR] [MY-010119]: [code]Aborting[/code]

    • 这表明 MySQL 在遇到上述错误后停止了启动。
  3. [ERROR] [MY-013183] [InnoDB] Assertion failure: 这通常是由于 InnoDB 存储引擎中的一个内部同等性检查失败导致的。这个错误大概是由于破坏的事务大概数据导致的。

办理方案

1、修复 [code]TCP/IP[/code] 或 [code]Named Pipe[/code] 配置

你可以确保 MySQL 正确使用 [code]TCP/IP[/code],这是大多数情况下的首选方式。检查 [code]my.ini[/code] 中的网络设置。打开 [code]my.ini[/code] 文件,确保以下设置存在且正确:

[code][mysqld] bind-address=127.0.0.1 enable-named-pipe[/code]

2、修复 InnoDB 相关错误

[code]InnoDB[/code] 错误通常表明数据库文件或事务日志大概破坏。打开 [code]my.ini[/code] 文件,添加以下配置来禁用 InnoDB 的规复检查:

[code][mysqld] innodb_force_recovery=0[/code]

innodb_force_recovery 可以有 1 到 6 的值,分别对应差别的规复力度。假如 1 无效,你可以逐渐增加到 2 或 3 尝试规复,但避免使用更高的值(如 4-6),这些大概导致数据丢失。

  • 启动后,不要关闭此窗口。

2.3 重新打开另一个命令提示符窗口,登录 MySQL

  • 在另一个命令提示符窗口中,使用以下命令登录 MySQL(不需要暗码):

[code]mysql --protocol=PIPE -u root[/code]
  • 如今你应该可以登录 MySQL。

2.4 重置 root 暗码

登录成功后,使用以下 SQL 命令重置 [code]root[/code] 用户的暗码:

[code]USE mysql; ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES;[/code]

将 [code]new_password[/code] 更换为你想要设置的新暗码。

2.5 关闭 MySQL 跳过权限表的模式并重启服务

  • 停止跳过权限表的 MySQL 服务:

    • 起首关闭命令提示符窗口中的 MySQL 服务进程(按下 Ctrl + C 或直接关闭该窗口)。
  • 重新启动 MySQL 服务:

[code]net start mysql [/code]

2.6 使用新暗码登录

如今你可以使用新的暗码登录:

[code]mysql -u root -p [/code]

输入你刚才设置的暗码,应该可以成功登录。

总结

  • 假如你忘记了 [code]root[/code] 暗码,建议使用跳过权限表的方式重置暗码。
  • 确保 MySQL 服务已经正确启动,且你在使用正确的用户名和暗码举行登录。

以上就是重置MySQL 8.0 Root暗码的简便方法小结的具体内容,更多关于重置MySQL 8.0 Root暗码的资料请关注脚本之家别的相关文章!


来源:https://www.jb51.net/database/328744uk1.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-2 01:03 , Processed in 0.035939 second(s), 19 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部