当前位置:   article > 正文

Access denied for user ‘root‘@‘localhost‘(using password:YES)_access denied for user 'root'@'localhost' (using p

access denied for user 'root'@'localhost' (using password: yes)

1. root用户出现access denied的原因

可能原因如下:

  • mysql的服务器停止
  • 用户的端口号或者IP导致
  • mysql的配置文件错误----my.ini等文件
  • root用户的密码错误

2. 非root用户出现access denied的原因

Access denied for user 'admin'@'localhost'(using password:YES)

可能的原因除了上面的4点,还有一点,这一点是我亲身遇见的。

  • 用户创建有问题,本地用户or远程用户。

解释下就是,创建了本地用户却通过远程来访问,或者创建了远程用户却通过本地用户来访问。例子,

# 创建了'admin'用户,host是'localhost',却通过admin@103.186.147.181来访问
# 创建了'admin'用户,host是'%',却通过admin@localhost来访问。
# 就会报上面的access denied错误
  • 1
  • 2
  • 3

在Mysql的安装文件里面有个mysql的库,这是个系统库,安里面有一个user表,user表里面用username与host做双主键,
如果这张表中没有root,localhost这一行字段,那么你这个用户是无权限登陆进localhost,root也不例外,
但是默认情况下是有这个字段的,所以肯定是你安装失败,或者有人把你这张表里面的相应的这行给删掉了(mysql在你删掉系统表里不会提示,就是你删掉mysql这个系统库也不会提示)
所以最简单的做法就是替换你的mysql库,找到一个可用的mysql库,直接把里面的内容copy过来就OK了

如下图所示。
在这里插入图片描述

在MysqlDB中的mysql库中有一个user表,这个表是管理访问mysql的用户的。user字段和host字段对应的就是我们在连接mysql时的用户和主机,所以如果在这个表中没有你连接mysql所使用的用户和主机的行,那就会报上面的错误,这时候就需要创建一个该用户和主机的组合了。若需要创建用户请移步 Mysql系列之创建用户、删除用户、修改密码

参考文献

[1] Mysql系列之创建用户、删除用户、修改密码
[2] MySQL中用户权限、库权限、表权限的控制
[3] MySQL中USER表详解

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/166229
推荐阅读
相关标签
  

闽ICP备14008679号