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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/theaipower/article/details/139954404
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/theaipower/article/details/139954404

本文目录
一、Bug简介
二、可能的出错原因
三、解决方案
方案一:重设密码(建议忘记密码才使用这个方案)
方案二:检查用户权限
方案三:修改配置文件(推荐)
总结
一、Bug简介
Mysql在使用过程中,可能会遇到登录问题,

比如常见的错误信息:“Access denied for user ‘root’@‘localhost’ (using password: YES)”。

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

二、可能的出错原因
出现这个Access denied for user ‘root’@‘localhost’ (using password: YES)

问题的原因有如下可能:

MySQL的服务器停止了。
用户的端口号或者IP导致拒绝访问。
MySQL的配置文件错误(通常是my.cnf或my.ini)。
root用户的密码错误。
权限问题:用户可能没有足够的权限登录。
三、解决方案
方案一:重设密码(建议忘记密码才使用这个方案)
步骤1:停止MySQL服务

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

sudo systemctl stop mysql
1
在Windows上,可以通过服务管理器停止MySQL服务。


然后选择服务这一块

关闭本地服务器就可以了:

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

在Linux上,使用以下命令:

sudo mysqld_safe --skip-grant-tables &
1
如果是Windows系统。

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

skip-grant-tables
1
重启MySQL服务

systemctl restart mysqld  
1
创建一个免密码登录的用户

use mysql  #选择数据库
1
update user set authentication_string=password("123456") where user="root";  #修改密码
1
步骤3:连接Mysql

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

mysql -u root
1
步骤4:设置新密码

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

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
1
2
步骤5:重启Mysql服务

在Linux上,使用以下命令:

sudo systemctl start mysql
1
Windows上,使用命令

net start mysql
1
方案二:检查用户权限
确保root用户具有从localhost登录的权限。可以使用以下命令查看权限:

SHOW GRANTS FOR 'root'@'localhost';
1
如果权限不正确,可以使用以下命令授予所有权限:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
1
2
方案三:修改配置文件(推荐)
检查MySQL的配置文件,确保没有错误的配置阻止了登录。

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

在[mysqld]这个条目下加入

skip-grant-tables 
1
保存退出后重启mysql即可。

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

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

mysql> use mysql;
mysql> update user set password=password("新密码") where user="root";
1
2
然后刷新数据库。

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)  
mysql> quit;
1
2
3
总结


然后这个问题就可以解决了,推荐使用方案三。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/theaipower/article/details/139954404

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值