我尝试使用phpMyAdmin将用户添加到我的数据库中。
当我通过以下方式添加用户时,一切正常:
用户名:用户密码:pass主机: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
Run Code Online (Sandbox Code Playgroud)
(密码已被phpmyadmin删除)
确保您没有任何匿名用户。
如果您不能弄清为什么拒绝访问,请从user表中删除所有Host值包含通配符的条目(包含%或_字符的条目)。一个非常常见的错误是使用Host='%'和插入一个新条目User='some_user',以为您可以指定本地主机从同一台计算机进行连接。之所以不起作用,是因为默认特权包含带有Host='localhost'和的条目User=''。由于该条目的Host值localhost比特定%,因此从localhost连接时,它优先于新条目使用!正确的步骤是插入第二个录入Host='localhost'和User='some_user',或删除与该条目Host='localhost'和User=''。删除条目后,请记住发出一条FLUSH PRIVILEGES语句以重新加载授权表。