我已创建用户'demo'并授予'demo'@'%'特权。我可以从任何远程服务器登录,但是当我尝试从localhost连接时,我收到一个错误:
拒绝访问用户'demo _ @'%''@'localhost'(使用密码:是)
这对我来说很奇怪,因为'%',根据文档,应该匹配任何IP地址。显而易见的解决方案是为'demo'@'localhost'创建第二组权限,但我想知道,这是否设计为这样工作?或者它与mysql客户端尝试连接到数据库的方式有关? (环回网络接口与真实网络接口)。我可以从同一台机器上将mysql客户端作为'demo'@'%'连接吗?
- 编辑 -
有人建议我的问题与Are Users 'User'@'%' and 'User'@'localhost' not the same?相同,但事实并非如此,因为接受的回答是:
用户@%允许从所有位置进行访问。
在我的实际情况中,User @%允许从除 localhost之外的所有位置进行访问。因为答案来自2012年,同时我们有分支到MariaDB,我提供了确切的版本信息:
D:\xampp\mysql\bin>mysql --version mysql Ver 15.1 Distrib
10.1.16-MariaDB, for Win32 (AMD64)
答案 0 :(得分:0)
尝试将skip-name-resolve
选项添加到my.cnf中的mysqld部分。也许从“localhost”解决问题确实存在问题。使用该选项,服务器仅使用IP地址。