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
yum安装mysql步骤及报错ERROR 1045 (28000)