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

时间:2015-01-19 22:35:21

标签: mysql mariadb

我尝试使用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删除)

1 个答案:

答案 0 :(得分:5)

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

来自Mysql Documentation

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