我在包括MySQL文档在内的许多来源中找到了这样的声明
SHOW GRANTS for 'monty'@'localhost';
采取的示例here。
请注意,引用了monty
和localhost
。我尝试了一个不带引号的版本
SHOW GRANTS for monty@localhost;
在MySQL控制台中,我得到了完全相同的结果。
有人能解释为什么在文档和教程中引用这两个词的原因?
答案 0 :(得分:2)
这是因为MySQL用户名几乎可以包含任何字符,包括引号和空格。例如,这是完全合法的语法:
mysql> grant all on test.* to ' \\"\'@*.'@'localhost';
Query OK, 0 rows affected (0.00 sec)
如果您的用户名包含非字母数字字符(如点,空格或引号),则MySQL将抛出错误,除非将其括在引号中并在必要时使用反斜杠正确转义。