Mysql 具有所有权限的用户的ODBC连接器访问被拒绝

Mysql 具有所有权限的用户的ODBC连接器访问被拒绝,mysql,odbc,Mysql,Odbc,我正在尝试“测试”ODBC连接器5.3,它给了我ol“拒绝用户[username]@localhost访问(使用密码:YES)”。但是,当我查看用户表时,我看到将*.*上的所有权限授予[username]@'',由密码“xxxx”标识,并使用授予选项 我觉得所有的特权都应该由那条线授予。我缺少什么?这是一个常见错误,因为MySQL访问受到客户端主机以及用户名和密码凭据的限制,并且必须按照中的详细说明专门授予访问权限。请注意,localhost是一种特殊情况,您的通配符GRANT-- 如果无法找出

我正在尝试“测试”ODBC连接器5.3,它给了我ol“拒绝用户[username]@localhost访问(使用密码:YES)”。但是,当我查看用户表时,我看到
将*.*上的所有权限授予[username]@'',由密码“xxxx”标识,并使用授予选项


我觉得所有的特权都应该由那条线授予。我缺少什么?

这是一个常见错误,因为MySQL访问受到客户端主机以及用户名和密码凭据的限制,并且必须按照中的详细说明专门授予访问权限。请注意,
localhost
是一种特殊情况,您的通配符
GRANT
--

如果无法找出拒绝访问的原因,请从
用户
表中删除包含通配符的
主机
值的所有行(包含
'%'
'.
字符的行)。一个非常常见的错误是插入一个带有
Host='%'
User='some_User'
的新行,认为这样可以指定
localhost
从同一台机器进行连接。这不起作用的原因是默认权限包括一行
Host='localhost'
User='
。由于该行具有比
'%'
更具体的
Host
'localhost'
,因此从
localhost
连接时,它优先于新行使用!正确的步骤是插入第二行,其中包含
Host='localhost'
User='some\u User'
,或者删除包含
Host='localhost'
User='
的行。删除行后,请记住发出一条语句以重新加载grant表。另见