让我们了解默认选项,期望值的选项以及MySQL中的'='符号-
按照惯例,使用等号(=)写入分配值的选项的长格式。它显示如下-
mysql --host=tonfisk --user=jon
对于需要一个值(i.e没有默认值)的选项,不需要等号。这意味着以下命令在这种情况下将有效-
mysql --host tonfisk --user jon
在以上两种情况下,mysql客户端都会尝试通过用户名为“ jon”的帐户连接到运行在名为“ tonfisk”的主机上的MySQL服务器。
由于这种行为,当没有为期望提供值的选项提供任何值时,问题有时会出现。
当用户以jon用户身份连接到在主机tonfisk上运行的MySQL服务器时,将运行以下命令-
shell> mysql --host 85.224.35.45 --user jon输出结果
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 8.0.25 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
然后,我们执行以下命令-
mysql> SELECT CURRENT_USER();输出结果
+----------------+ | CURRENT_USER() | +----------------+ | jon@% | +----------------+ 1 row in set (0.00 sec)
当这些选项之一的必需值被省略时,将产生错误。错误可能如下图所示-
shell> mysql --host 85.224.35.45 –user输出结果
mysql: option '--user' requires an argument
在上述情况下,mysql在--user选项后找不到值,因为命令行上没有任何内容。但是,如果用户忽略了不是最后一个要使用的选项的选项的值,则会获得不同的错误,这可能是用户无法预期的-
shell> mysql --host --user jon输出结果
ERROR 2005 (HY000): Unknown MySQL server host '--user' (1)