我在包括MySQL文档在内的很多资源中都发现了这样的语句
SHOW GRANTS for 'monty'@'localhost';
示例here .
请注意,monty
和 localhost
都被引用了。我尝试了一个未引用的版本
SHOW GRANTS for monty@localhost;
在 MySQL 控制台中,我得到了完全相同的结果。
谁能解释一下文档和教程中引用这两个词的原因?
最佳答案
那是因为 MySQL 用户名几乎可以包含任何字符,包括引号和空格。例如,这是完全合法的语法:
mysql> grant all on test.* to ' \\"\'@*.'@'localhost';
Query OK, 0 rows affected (0.00 sec)
如果您的用户名包含非字母数字字符,如点、空格或引号,则 MySQL 将抛出错误,除非它被括在引号中并在必要时使用反斜杠正确转义。
关于mysql - 为什么在 MySQL 中引用用户名和主机名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26710551/