MySQL 中的“@localhost 用户”有什么意义?

MySQL 中的“@localhost 用户”有什么意义?

引用 MySQL 文档:

如果您无法弄清楚为什么拒绝访问,请从用户表中删除所有 Host 值包含通配符的条目(包含“%”或“_”字符的条目)。一个非常常见的错误是插入一个新条目,其中 Host='%' 和 User='some_user',认为这使您能够指定 localhost 从同一台计算机进行连接。这不起作用的原因是默认权限包括一个 Host='localhost' 和 User='' 的条目。由于该条目的 Host 值“localhost”比“%”更具体,因此从 localhost 连接时优先使用它而不是新条目!正确的过程是插入第二个条目,其中 Host='localhost' 和 User='some_user',或删除 Host='localhost' 和 User='' 的条目。

我不明白的是为什么这个条目会出现在那里?我不明白它们有什么用途。

我删除它们可能会破坏某些东西吗?(上面引用的建议之一)

笔记:我知道有多个问题询问为什么 user@'%' 不起作用,答案中也包含这个确切的引文。我想知道的是为什么会产生这个问题(?)。

答案1

它是一个匿名帐户,可以用于各种您不想指定用户名和密码的目的,例如在脚本中。

当然,这是一个安全漏洞,但也仅限于本地主机。您还可以更改此匿名帐户的授予权限,以便它只能对特定数据库甚至单个表进行选择。

相关内容