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