首页 > 数据库 > MySQL > 正文

MySQL用户名和密码都正确却无法登陆的问题

2024-07-24 12:59:37
字体:
来源:转载
供稿:网友

今天使用MySQL时,我创建了一个新用户: CREATE USER 'ubermensch'@'%' IDENTIFIED BY 'man2017'; 然后登陆该用户时却一直报错(密码正确): C:/Users/超人林>mysql -u ubermensch -p Enter passWord: ******* ERROR 1045 (28000): access denied for user 'ubermensch'@'localhost' (using password: YES) 后来翻阅网上资料发现MySQL中默认存在一个用户名为空的账户,只要在本地,可以不用输入账号密码即可登录到MySQL中。mysql在验证用户登陆的时候,首先是验证host列,如果host列在验证user列,再password列,而现在按照我之前的连接语句:按照host列找到为空的那列(空匹配所有用户名),所以匹配到了这条记录,然后发现这条记录的密码为空,而我的语句里面有密码,那么就会报错。 解决办法:删除匿名用户。

mysql> use mysql;Database changedmysql> delete from user where user='';Query OK, 1 row affected (0.00 sec)mysql> flush PRivileges;Query OK, 0 rows affected (0.00 sec)mysql> exit;

然后就可以登陆用户了:

mysql -u ubermensch -pEnter password: *******Welcome to the MySQL monitor.
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表