mysql创建登录报错ERROR1045(28000)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql创建登录报错ERROR1045(28000)相关的知识,希望对你有一定的参考价值。

最近,创建了一个用户。但是登录时出现错误提示:

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


网上查找了一下;发现了出现问题的原因。数据库安装时,会创建有一个user为空的匿名用户;而这user为空它可以匹配任何字符。如下图(第四个):


技术分享


而本人创建的用户为:

mysql> grant  all  on  itcase.*  to  ‘test‘@‘%‘  identified  by  ‘123456‘;


结果登录时出现了error 1045(280000)提示。创建命令中通配符 % 可以匹配所有字符

问题就清晰了,当我输入登录命令时:

C:\Users\Administrator>mysql  -utest  -p123456

系统会去寻找匹配字段,用户 test 他的 host 定义为 % ,所有上图 host 字段中任何一项都可以。再到匹配 user 字段, 这时 test 会匹配到第四个用户名为空的字段 。也就是说我们登录的是user为空的匿名用户,而非我们想要的 test 用户;密码验证错误。所以登录不了;


原因找到了,解决方法就是把匿名用户删除就行了。匿名用户是系统自行给予的,而且本身没有设置密码,可以随便登录;从安全方面看,删除匿名用户也可提高数据库的安全性。


用root用户登录mysql;

Mysql> use mysql;

Database Changed

Mysql>delete from user where user=‘‘;
Query OK, 2 rows affected (0.17 sec)

Mysql>exit


OK!到此问题解决。

以上是关于mysql创建登录报错ERROR1045(28000)的主要内容,如果未能解决你的问题,请参考以下文章

关于mysql登录出现报错信息:ERROR 1045 (28000)的解决方法

MySQL密码正确却无法本地登录,ERROR 1045 (28000): Access denied for user 'root'@'localhost' (usin

关于MYSQL ERROR1045 报错的解决办法

yum安装mysql步骤及报错ERROR 1045 (28000)

mac安装mysql报错ERROR 1045 (28000): Access denied for.

mysql登录时,ERROR 1045 (28000): 错误解决办法