前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【已解决】MySQL登录时出现ERROR 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开解决方法

【已解决】MySQL登录时出现ERROR 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开解决方法

作者头像
程序员洲洲
发布2024-06-09 13:44:07
2.6K0
发布2024-06-09 13:44:07
举报
文章被收录于专栏:项目文章项目文章

本文摘要:本文已解决MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开的相关报错问题,并总结提出了几种可用解决方案。同时结合人工智能GPT排除可能得隐患及错误。

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。

一、Bug描述

Mysql在使用过程中,可能会遇到登录问题,比如常见的错误信息:“Access denied for user ‘root’@‘localhost’ (using password: YES)”。

本文将分析这个问题的可能原因,并提供一系列解决方案。

在这里插入图片描述
在这里插入图片描述

二、定位报错原因

出现这个Access denied问题的原因有如下可能:

  • MySQL的服务器停止了。
  • 用户的端口号或者IP导致拒绝访问。
  • MySQL的配置文件错误(通常是my.cnf或my.ini)。
  • root用户的密码错误。
  • 权限问题:用户可能没有足够的权限登录。

三、解决方案汇总

方案一:重设密码(建议忘记密码才使用这个方案)

步骤1:停止MySQL服务

在Linux上,可以使用以下命令:

代码语言:javascript
复制
sudo systemctl stop mysql

在Windows上,可以通过服务管理器停止MySQL服务。

步骤2:以无密码模式启动MySQL

在Linux上,使用以下命令:

代码语言:javascript
复制
sudo mysqld_safe --skip-grant-tables &

如果是Windows系统。

使用vi /etc/my.cnf,添加到【mysqld】后面

代码语言:javascript
复制
skip-grant-tables

重启MySQL服务

代码语言:javascript
复制
systemctl restart mysqld  

创建一个免密码登录的用户

代码语言:javascript
复制
use mysql  #选择数据库

update user set authentication_string=password("123456") where user="root";  #修改密码
步骤3:连接Mysql

使用以下命令连接到MySQL服务器:

代码语言:javascript
复制
mysql -u root
步骤4:设置新密码

在MySQL命令行中,执行以下命令来设置新密码:

代码语言:javascript
复制
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
步骤5:重启Mysql服务

在Linux上,使用以下命令:

代码语言:javascript
复制
sudo systemctl start mysql

Windows上,使用命令

代码语言:javascript
复制
net start mysql

方案二:检查用户权限

确保root用户具有从localhost登录的权限。可以使用以下命令查看权限:

代码语言:javascript
复制
SHOW GRANTS FOR 'root'@'localhost';

如果权限不正确,可以使用以下命令授予所有权限:

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

方案三:修改配置文件(推荐)

检查MySQL的配置文件,确保没有错误的配置阻止了登录。

常见的配置文件路径为/etc/mysql/my.cnf或/etc/my.cnf 或者 D:\Program Files\MySQL\MySQL Server 5.0\my.ini)

在[mysqld]这个条目下加入

代码语言:javascript
复制
skip-grant-tables 

保存退出后重启mysql即可。

这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现 password:的时候直接回车可以进入,不会出现ERROR 1045 (28000),但很多操作都会受限制,因为我们不能grant(没有权限)。

我们接下来设置密码就可以了

代码语言:javascript
复制
mysql> use mysql;
mysql> update user set password=password("新密码") where user="root";

然后刷新数据库。

代码语言:javascript
复制
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)  
mysql> quit;

总结

Hello,各位看官老爷们好,洲洲已经建立了技术交流群,如果你很感兴趣,可以私信我加入我的社群。

📝社群中不定时会有很多活动,例如每周都会包邮免费送一些技术书籍及精美礼品、学习资料分享、大厂面经分享、技术讨论、行业大佬创业杂谈等等。

📝社群方向很多,相关领域有Web全栈(前后端)、人工智能、机器学习、自媒体变现、前沿科技文章分享、论文精读等等。

📝不管你是多新手的小白,都欢迎你加入社群中讨论、聊天、分享,加速助力你成为下一个技术大佬!也随时欢迎您跟我沟通,一起交流,一起成长。变现、进步、技术、资料、项目、你想要的这里都会有

📝欢迎您加入社群~一个人可以或许可以走的很快,但一群人将走的更远!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Bug描述
  • 二、定位报错原因
  • 三、解决方案汇总
    • 方案一:重设密码(建议忘记密码才使用这个方案)
      • 步骤1:停止MySQL服务
      • 步骤2:以无密码模式启动MySQL
      • 步骤3:连接Mysql
      • 步骤4:设置新密码
      • 步骤5:重启Mysql服务
    • 方案二:检查用户权限
      • 方案三:修改配置文件(推荐)
      • 总结
      相关产品与服务
      云数据库 MySQL
      腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档