我已经创建了用户‘演示’,并授予'demo'@'%‘的特权。我可以从任何远程服务器登录,但是当我尝试从本地主机连接时,我会得到一个错误:
拒绝用户‘demo_@’%‘@’localhost‘的访问(使用密码:是的)
这对我来说很奇怪,因为根据文档,'%‘应该与任何IP地址匹配。显而易见的解决方案是为'demo'@'localhost‘创建第二组特权,但我想知道,这是否就是为了这样设计的呢?还是与mysql客户端试图连接DB的方式有关?(回送网络接口与真实网络接口)。我可以从mysql客户端连接到同一台机器上作为'demo'@'%‘吗?
-编辑--
有人建议我的问题与Are Users 'User'@'%' and 'User'@'localhost' not the same?相同,但事实并非如此,因为公认的答案是:
用户@%将允许从所有位置访问。
在我的实际情况下,用户@%将允许访问除localhost以外的所有位置。因为答案来自于2012年,同时我们也有MariaDB的分支,所以我提供了确切的版本信息:
D:\xampp\mysql\bin>mysql --version mysql Ver 15.1 Distrib
10.1.16-MariaDB, for Win32 (AMD64)发布于 2017-01-13 13:17:32
尝试将skip-name-resolve选项添加到my.cnf中的mysqld部分。也许确实存在从/到"localhost“的解决问题。使用该选项,服务器只使用IP附件。
https://stackoverflow.com/questions/41632960
复制相似问题