root密码正确,但是连接mysql5.7访问被拒,ERROR 1045 (28000)

问题描述:

windows系统,以管理员方式打开cmd(已配置好环境变量),输入:mysql -u root -proot123
已确保密码正确的情况下(注意指令-p后面不能加空格),仍然报错:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

问题原因:

1.可能存在匿名用户,即没有用户名的用户'',比如''@'localhost''root'@'localhost'是等价的。
2. -p 命令前不能加空格,后面不要接分号; 正确的为:-p密码
以下均会导致错误,如 -p 密码、-p密码;
3.用户密码可能过期 (一般都不是这个问题)

解决办法:

1.解决匿名用户问题
查询用户信息:SELECT user, host FROM mysql.user;

删除匿名用户:DELETE from mysql.user where user='';

重载权限表:flush privileges;­

重启mysql,问题搞定。(没搞定再考虑用户密码过期问题)

2.解决用户密码过期

修改密码:

GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'root123';

重载权限表:flush privileges;­

重启mysql,问题搞定。

如果你此时已经无法连接上mysql,不能执行上述命令,请先配置免密登录(或使用root用户通过navicat连接mysql,执行上述操作,navicat不存在匿名用户问题)。

配置免密登录步骤(适用于5.5-5.7版本,8.0版本命令改了):

  • 关闭mysql服务,以管理员方式打开cmd,输入:mysqld -nt --skip-grant-tables(如果报错,可能是你之前移动过data的默认路径,请自行百度解决)
  • 开启mysql服务,新打开一个cmd窗口,输入mysql -u root登录成功
  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值