我尝试使用phpMyAdmin将用户添加到我的数据库。
当我以下列方式添加用户时,一切正常:
UserName:user 密码:通过 主持人:localhost
但是当我创建相同的用户并使用"%"而不是localhost他无法登录(甚至从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删除)
答案 0 :(得分:5)
确保您没有任何匿名用户。
如果您无法弄清楚拒绝访问权限的原因,请从user
表中删除包含通配符Host
值的所有条目(包含%
或_
的条目字符)。一个非常常见的错误是插入一个带有Host='%'
和User='some_user'
的新条目,认为这使您可以指定localhost从同一台计算机进行连接。这不起作用的原因是默认权限包括Host='localhost'
和User=''
的条目。由于该条目的主机值localhost
比%
更具体,因此从localhost连接时优先使用新条目!正确的过程是插入包含Host='localhost'
和User='some_user'
的第二个条目,或删除包含Host='localhost'
和User=''
的条目。删除条目后,请记住发出FLUSH PRIVILEGES
语句以重新加载授权表。