通配符主机在 MariaDB 中不工作 (MySQL)

Wildcard Host not working in MariaDB (MySQL)

我尝试使用 phpMyAdmin 将用户添加到我的数据库。

当我按照以下方式添加用户时,一切正常:

用户名:用户 密码:通过 主机:localhost

但是当我创建相同的用户并使用“%”而不是本地主机时,他无法登录(即使是从本地主机)

这可能是什么问题?

(更新):这是生成的命令:

CREATE USER 'user'@'%' IDENTIFIED BY '***';GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0

(密码已被 phpmyadmin 删除)

确保您没有任何匿名用户。

来自Mysql Documentation

如果您无法弄清楚访问被拒绝的原因,请从 user table 中删除所有 Host 值包含通配符的条目(包含 % 的条目或 _ 个字符)。一个非常常见的错误是插入一个带有 Host='%'User='some_user' 的新条目,认为这使您能够指定 localhost 从同一台机器进行连接。这不起作用的原因是默认权限包括带有 Host='localhost'User='' 的条目。因为该条目的主机值 localhost% 更具体,所以在从本地主机连接时优先使用新条目!正确的步骤是使用 Host='localhost'User='some_user' 插入第二个条目,或者使用 Host='localhost'User='' 删除条目。删除条目后,记得发出 FLUSH PRIVILEGES 语句重新加载授权 tables.