我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘ (using password YES/NO)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘ (using password YES/NO)

问题描述

在使用命令行登录 MySQL 时出现了下述问题:

image-20230202014159532

或:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)

出错原因

  • using password: NO:表示输入没有输入密码就尝试登陆了
  • using password: YES:表示输入了密码,但密码错误

所以,很有可能是忘记密码了,因此需要重设密码。

解决方案:修改密码

一、MySQL 5.7版本

Step 1:跳过MySQL密码验证

​ 找到 MySQL 的配置文件 “my.ini”,找到 [mysqld],在其下面任意一行添加 skip-grant-tables,保存,如下图所示:

image-20230202014721490

注:my.ini”文件可能在目录 C:\ProgramData\MySQL 下。

Step 2

重启 MySQL 服务。

Step 3:无密码登录MySQL

  • 找到 MySQL 安装目录下的 bin 目录,地址栏输入 cmd,然后回车,如下图所示:

    image-20230202015114665

    附:如果已经为 MySQL 8.0 配置了环境变量,就可以在任意位置打开 cmd。

  • 输入 mysql -u root -p 回车后会显示输入密码,直接不管,再次回车,不要关闭命令行,如下图所示:

    image-20230202013745050

Step 4:将登录密码设置为空

​ 在上一步的命令行中依次输入:① use mysql;update user set authentication_string='' where user='root';quit;。如下图所示:

image-20230202015751462

Step 5:更改登录密码

  • 关闭上一个命令行
  • 重启 MySQL 服务
  • 打开新的 cmd 命令行,并输入 mysql -u root -p 后回车、回车(连续两次回车)
  • 刷新权限,输入 flush privileges; 后回车
  • 最后输入 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 后回车

笔者将密码重置为 root,如下图所示:

image-20230202020141575

Step 6:重新设置MySQL密码验证

与第一步相反,删除之前添加的“skip-grant-tables”即可。
🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀
🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀
🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀

一、MySQL 8.x版本

Step 1

停止 MySQL 服务。

Step 2

创建一个名为 mysql-init.txt 的文本文件,里面有一行内容 ALTER USER 'root'@'localhost' IDENTIFIED BY '你想设置的密码';,然后保存。

说明:

  • 后续会调用这个文件,以设置为 ‘你想设置的密码’
  • 这个文件可以放在任意路径下,为便于后续的步骤,笔者直接放在 C 盘根目录下了。

Step 3

  • 以管理员身份运行 cmd

    步骤:搜索 cmd → 右键 → 以管理员身份运行

    image-20230202141650442

    打开后,如下图所示:

    image-20230202141809028

  • 切换到 MySQL 8.0 程序所在的 bin 目录,如下图所示
    image-20230202142006979

  • 输入 mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file=C:\\mysql-init.txt

    输入的命令分为三部分,如下图所示:

    image-20230202142345856

    • ① MySQL 8.0 版本的服务 → 右键 → 属性 → 可执行路径 → 选择与 ① 对应的内容,复制

    image-20230202142617912

    image-20230202142740635

    • --init-file= + mysql-init.txt 文件所在的路径。笔者直接保存在 C 盘根目录下了,所以此条命令为 --init-file=C:\\mysql-init.txt
    • ③ 在 ① 和 ② 之间有一个空格。
  • 输入完上述命令后,回车。发现光标停留在空行上,这说明修改成功,如下图所示:

    image-20230202143351546

  • 关闭当前命令行,必须关闭,否则无法启动 MySQL 服务,如下图所示:

    image-20230202143727036

  • 删除 mysql-init.txt 文件

最后的最后,重新登录一下,看是否重置成功。(不要忘记启动 MySQL 服务)

参考:

[1] https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

[2] https://www.jb51.net/article/215881.htm

[3] https://blog.csdn.net/Fatelzg/article/details/120207664

[4] https://blog.csdn.net/qq_52572621/article/details/127105324

来源地址:https://blog.csdn.net/m0_46308522/article/details/128851046

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘ (using password YES/NO)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: YES)

遇到这个问题搞了很久,自己记下来。方法是百度的,亲测有效。 ERROR 1045 (28000): Access denied for user ‘ODBC’@‘localhost’ (using password: NO) ERROR 1
2023-08-16

Mysql:ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: NO)如何解决

这篇文章主要介绍“Mysql:ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: NO)如何解决”,在日常操作中,相信很多人在Mysql
2023-06-30

终极解决 mysql8.0 ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO)

当你在Windows系统中,以命令行方式,输入 mysql 后,提示 错误: ERROR 1045 (28000): Access denied for user ‘ODBC’@‘localhost’ (using password: NO
2023-08-17

Mysql 1045 Access denied for user ‘root‘@‘localhost‘ (using password: YES/NO)个人解决方法 分享一下

前言 Mysql 1045 Access denied for user ‘root‘@‘localhost‘ (using password: YES/NO) 看了很多篇文章都没解决, 下面是我个人解决方法 分享一下 一、个人配置:系统w
2023-08-16

编程热搜

目录