4.2.4在命令行上使用选项
在命令行中指定的程序选项遵循以下规则:
选项在命令名后面给出。
选项参数从一个破折号或两个破折号开始,具体取决于它是一个简短形式还是长形式的选项名称。许多选项都有短和长的形式。例如,
-?并且--help是指示MySQL程序显示其帮助消息的选项的短和长形式。选项名称区分大小写。
-v并且-V都是合法的,具有不同的含义。(它们是相应的简单形式--verbose和--version选项。)某些选项会在选项名称后面带有一个值。例如,
-h localhost或者--host=localhost指示MySQL服务器主机到客户端程序。该选项值告诉程序运行MySQL服务器的主机的名称。对于具有值的长选项,请将选项名称和值除以
=符号。对于带值的短选项,选项值可以紧随选项字母,或者可以有一个空格:-hlocalhost和-h localhost是等价的。此规则的一个例外是指定您的MySQL密码的选项。这个选项可以以一种或多种形式给出。在后一种情况下(没有给出密码值),程序将提示您输入密码。密码选项也可以在短形式给予或作为。然而,对于简短的形式,如果给出了密码值,它必须遵循选项信, 没有间隔的空间。这样做的原因是,如果选项字母后面有一个空格,程序就无法判断下面的参数是应该是密码值还是其他类型的参数。因此,以下两个命令有两个完全不同的含义:--password=pass_val--password-ppass_val-pshell> mysql -p test shell> mysql -p test第一个命令指示mysql使用密码值
test,但不指定默认数据库。第二个指示mysql提示输入密码值并test用作默认数据库。在选项名称中,dash(
-)和下划线(_)可以互换使用。例如,--skip-grant-tables和--skip_grant_tables是相等的。(但是,领先的破折号不能以下划线表示)。对于采用数字值的选择,该值可以与一个后缀被给予
K,M或G(大写或小写),以指示1024一乘法器,10242或10243。例如,以下命令告诉mysqladminping服务器1024次,每次Ping之间休眠10秒:shell> mysqladmin --count=1K --sleep=10 ping当指定文件名作为选项值时,避免使用
~shell元字符,因为它可能不会按预期解释。
在命令行中给出包含空格的选项值必须引用。例如,--execute(或-e)选项可以与mysql一起使用来将SQL语句传递给服务器。当使用此选项时,mysql将执行选项值中的语句并退出。这些陈述必须用引号括起来。例如,您可以使用以下命令获取用户帐户列表:
shell> mysql -u root -p --execute="SELECT User, Host FROM mysql.user"
Enter password: ******
+------+-----------+
| User | Host |
+------+-----------+
| | gigan |
| root | gigan |
| | localhost |
| jon | localhost |
| root | localhost |
+------+-----------+
shell>
注意
长格式(--execute)后跟一个等号(=)。
如果您希望在语句中使用引用的值,则需要转义内部的引号,或者在语句中使用与引用语句本身的引号不同的引号。命令处理器的功能决定了您是否可以使用单引号或双引号和转义引用字符的语法。例如,如果您的命令处理器支持使用单引号或双引号引号,则可以在语句周围使用双引号,并在语句中使用单引号。
可以在命令行中的选项值中传递多个SQL语句,用分号分隔:
shell> mysql -u root -p -e "SELECT VERSION();SELECT NOW()"
Enter password: ******
+------------------+
| VERSION() |
+------------------+
| 5.6.28-debug-log |
+------------------+
+---------------------+
| NOW() |
+---------------------+
| 2015-11-05 20:01:28 |
+---------------------+