具有从 '%' 登录权限的 Mysql 用户无法从 'localhost' 登录

标签 mysql windows localhost privileges

我已创建用户“demo”并授予“demo”@“%”权限。我可以从任何远程服务器登录,但是当我尝试从本地主机连接时,出现错误:

Access denied for user 'demo_@'%''@'localhost' (using password: YES)

这对我来说很奇怪,因为根据文档,“%”应该匹配任何 IP 地址。显而易见的解决方案是为“demo”@“localhost”创建第二组权限,但我想知道,这是设计成这样的吗?或者它与 mysql 客户端尝试连接数据库的方式有关? (环回网络接口(interface)与真实网络接口(interface))。我可以从同一台机器上的 mysql 客户端作为“demo”@“%”进行连接吗?

--编辑--

有人建议我的问题与 Are Users 'User'@'%' and 'User'@'localhost' not the same? 相同然而,事实并非如此,因为接受的答案指出:

User@% would allow access from all locations.

在我的实际情况中,User@% 将允许从除本地主机之外的所有位置进行访问。因为答案来自 2012 年,同时我们已经分支到 MariaDB,所以我提供了确切的版本信息:

 D:\xampp\mysql\bin>mysql --version mysql  Ver 15.1 Distrib
 10.1.16-MariaDB, for Win32 (AMD64)

最佳答案

尝试将 skip-name-resolve 选项添加到 my.cnf 中的 mysqld 部分。也许确实存在从/到“localhost”解析的问题。使用该选项,服务器仅使用 IP 地址。

关于具有从 '%' 登录权限的 Mysql 用户无法从 'localhost' 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41632960/

相关文章:

c - fwrite() 将垃圾数据添加到输出(WINE 和 Windows 7、mingw 和 MSVC;不是 linux/gcc)

java - 在 Java 中将字节数组转换为 Blob 的最简单方法

javascript - unity中如何让php更加安全

mysql - jparepository 无法解析为类型

c++ - 奇怪的食人魔错误和一个不存在的文件

Apache 不会在新的 Xampp 安装上启动 : The pipe has been ended. 子级:无法从父级读取套接字数据

mysql - 跳过录制列表中同一用户的接下来 12 小时的录制

windows - 将磁盘驱动器映射到存储 Controller

docker - 通过 Docker 在 localhost 上使用 SSL 运行 jenkins

php - 如何从其他计算机访问本地主机(xampp)