命令行上指定的程序选项遵循以下规则:
-
选项在命令名称之后给出。
-
选项参数以一个破折号或两个破折号开头,取决于它是选项名称的短形式还是长形式。许多选项既有短形式也有长形式。例如,
-?
和--help
是指示MySQL程序显示其帮助消息的选项的短形式和长形式。 -
选项名称区分大小写。
-v
和-V
都是合法的,具有不同的含义。(它们是--verbose
和--version
选项的相应缩写形式。) - 一些选项在选项名称后面有一个值。例如,-hlocalhost或--host=localhost向客户端程序指示MySQL服务器主机。选项值告诉程序运行MySQL服务器的主机的名称。
- 对于取值的长选项,用=符号分隔选项名称和值。对于取值的短选项,选项值可以紧跟在选项字母后面,或者在:-hlocalhost和-h之间可以有一个空格localhost是等价的。此规则的一个例外是指定MySQL密码的选项。此选项可以以长形式给出,如--password=pass_val或--password。在后一种情况下(没有给出密码值),程序会交互式提示您输入密码。密码选项也可以以短形式给出,如-ppass_val或-p。
然而,对于短形式,如果给出了密码值,它必须跟在选项字母后面,中间没有空格:如果空格跟在选项字母后面,程序无法判断后面的参数应该是密码值还是其他类型的参数。因此,以下两个命令有两种完全不同的含义:mysql -ptest mysql -p test第一个命令指示mysql使用test的密码值,但不指定默认数据库。第二个命令指示mysql提示输入密码值并使用test作为默认数据库。
- 在选项名称中,破折号(-)和下划线(_)在大多数情况下可以互换使用,尽管前导破折号不能作为下划线给出。例如,--skip-Grant-table和--skip_grant_tables是等效的。在本手册中,我们在选项名称中使用破折号,除非下划线很重要。例如--log-bin和--log_bin就是这种情况,它们是不同的选项。我们鼓励您也这样做。
- MySQL服务器具有某些只能在启动时指定的命令选项,以及一组系统变量,其中一些可以在启动时、运行时或两者都设置。系统变量名称使用下划线而不是破折号,并且在运行时引用时(例如,使用SET或SELECT语句),必须使用下划线编写:
SET GLOBAL general_log = ON; SELECT @@GLOBAL.general_log;在服务器启动时,系统变量的语法与命令选项相同,因此在变量名称中,破折号和下划线可以互换使用。例如,--general_log=ON和--General al-log=ON是等效的。(对于选项文件中设置的系统变量也是如此。)
-
对于取数值的选项,该值可以用
K
、M
或G
的后缀给出,表示乘数为1024、或。截至MySQL8.0.14,后缀也可以是T
、P
和E
,表示乘数为、或。后缀字母可以是大写或小写。例如,以下命令告诉mysqladmin ping服务器1024次,每次ping之间休眠10秒:mysqladmin --count=1K --sleep=10 ping
-
将文件名指定为选项值时,避免使用
~
shell元字符。它可能不会像您期望的那样被解释。
在命令行上给出包含空格的选项值时,必须加引号。例如,可以将--申请人(或-e)选项与mysql一起使用,将一个或多个以分号分隔的SQL语句传递给服务器。使用此选项时,mysql执行选项值中的语句并退出。语句必须用引号括起来。例如:
$> mysql -u root -p -e "SELECT VERSION();SELECT NOW()"
Enter password: ******
+------------+
| VERSION() |
+------------+
| 8.0.19 |
+------------+
+---------------------+
| NOW() |
+---------------------+
| 2019-09-03 10:36:48 |
+---------------------+
$>
长形式(--执行)后跟等号(=)。
要在语句中使用引号,您必须逃逸内部引号,或者在语句中使用不同于用于引用语句本身的引号类型的引号。命令处理器的功能决定了您可以选择使用单引号还是双引号,以及转义引号字符的语法。例如,如果您的命令处理器支持用单引号或双引号引用,您可以在语句周围使用双引号,并为语句中的任何引用值使用单引号。