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,问题解决