mysql新建用户host使用%但使用localhost无法连接

今天新建了一个用户,权限也给了,host设置的为%

但是使用该用户连接时出现如下错误

查看用户

mysql> select host,user,password from mysql.user;
+-----------+-----------+-------------------------------------------+
| host | user | password |
+-----------+-----------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 127.0.0.1 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| ::1 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| localhost | | |
| % | bimengine | *8EB0795119E0710F8C06D70E679FFFFE390A2BCC |
+-----------+-----------+-------------------------------------------+

原因:

  mysql.user 表中有另外一些记录产生了作用,最有可能的就是已经有一条''@localhost记录,就是用户名是空,主机字段是localhost的记录

  匿名用户账户的Host列值比'bimengine '@'%'账户更具体,在user表中排在前面

解决方法:

  删掉匿名账号,或者给它一个具体的名字,重启mysql,问题解决

posted @ 2019-08-29 18:32  慕尘  阅读(4813)  评论(0编辑  收藏  举报