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