MySQL选项默认值,选项期望值和=号

让我们了解默认选项,期望值的选项以及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)