【mysql】修改密码(ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES))

MySQL 1045错误:密码访问被拒解决办法
博客围绕MySQL出现的ERROR 1045 (28000)错误,即用户'root'@'localhost'密码访问被拒展开。分析了可能是同一用户不同host密码不同导致,给出解决方式,如在配置文件添加skip-grant-tables、重启服务、查询密码差异、修改密码等,还提及错误处理。

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

登录一直密码错误

可能原因

同一个用户不同host密码不同导致的

解决方式

  • 登录不进去的情况下在/etc/my.cnf文件中[mysqld]下添加skip-grant-tables

  • 重启mysql服务

service mysql restart

  • 查询host,user,authentication_string
select host,user,authentication_string from user where user='root';

从图中可以看出同一个用户本地和%的authentication_string不同

说明使用root用户在本机使用的密码和在其他地方用的密码不同

%代表所有host

但是单独设置了localhost就和其他的密码不同了(同一用户下)

再设置其他host的密码同样和%(其他)的密码不同了(同一用户下)

找到问题所在,修改密码

修改本机的密码

set password for 'root'@'localhost' = password('123456');

 

修改所有host的密码

set password for 'root'@'%' = password('123456');

示例密码过于简单,请勿模仿

如果执行以上的设置密码命令出现错误ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

先执行一下  flush privileges;

 

如果在其他地方能登该该用户的的mysql,就是%的密码,例如在window可视化数据库连接工具navicate可以登录,那么也可以直接把mysql中user数据库user表的user=‘root’,host为localhost的那条记录删掉,只留user=‘root’,host=‘%’的记录

delete from user where user='root' and host='localhost';

 

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值