在命令行中指定的程序选项遵循以下规则
选项在命令名称之后给出。
选项参数以一个破折号或两个破折号开头,具体取决于它是选项名称的短格式还是长格式。许多选项都有短格式和长格式。例如,
-?
和--help
是指示 MySQL 程序显示其帮助消息的选项的短格式和长格式。选项名称区分大小写。
-v
和-V
都是合法的,并且具有不同的含义。(它们分别是--verbose
和--version
选项的相应短格式。)有些选项在选项名称之后需要一个值。例如,
-h localhost
或--host=localhost
指示客户端程序的 MySQL 服务器主机。选项值告诉程序 MySQL 服务器运行的主机名称。对于需要值的 长选项,用
=
号分隔选项名称和值。对于需要值的短选项,选项值可以紧跟在选项字母后面,或者选项字母和选项值之间可以有一个空格:-hlocalhost
和-h localhost
是等效的。这条规则的例外是用于指定 MySQL 密码的选项。此选项可以在长格式中给出为--password=
或者pass_val
--password
。在后一种情况下(没有给出密码值),程序会交互式地提示您输入密码。密码选项也可以在短格式中给出为-p
或者pass_val
-p
。但是,对于短格式,如果给出密码值,它必须紧跟在选项字母后面,中间不能有空格:如果选项字母后面有一个空格,程序无法判断后面的参数是密码值还是其他类型的参数。因此,以下两个命令具有完全不同的含义mysql -ptest mysql -p test
第一个命令指示 mysql 使用
test
作为密码值,但没有指定默认数据库。第二个命令指示 mysql 提示输入密码值,并使用test
作为默认数据库。在选项名称中,破折号 (
-
) 和下划线 (_
) 在大多数情况下可以互换使用,尽管开头的破折号 不能 给出为下划线。例如,--skip-grant-tables
和--skip_grant_tables
是等效的。在本手册中,我们使用破折号作为选项名称,除非下划线很重要。例如,
--log-bin
和--log_bin
是不同的选项。我们鼓励您也这样做。MySQL 服务器有一些命令选项,这些选项只能在启动时指定,还有一组系统变量,其中一些可以在启动时、运行时或两种情况下都设置。系统变量名称使用下划线而不是破折号,并在运行时引用时(例如,使用
SET
或SELECT
语句),必须使用下划线编写SET GLOBAL general_log = ON; SELECT @@GLOBAL.general_log;
在服务器启动时,系统变量的语法与命令选项相同,因此在变量名称中,破折号和下划线可以互换使用。例如,
--general_log=ON
和--general-log=ON
是等效的。(这对于在选项文件中设置的系统变量也是如此。)对于需要数值的选项,可以将值与
K
、M
或G
后缀一起给出,以表示 1024、10242 或 10243 的倍数。从 MySQL 8.0.14 开始,后缀也可以是T
、P
和E
,以表示 10244、10245 或 10246 的倍数。后缀字母可以是大写或小写。例如,以下命令告诉 mysqladmin 对服务器进行 1024 次 ping 操作,并在每次 ping 操作之间休眠 10 秒
mysqladmin --count=1K --sleep=10 ping
当将文件名指定为选项值时,请避免使用
~
shell 元字符。它可能不会按预期解释。
在命令行中给出包含空格的选项值时,必须使用引号将其括起来。例如,--execute
(或 -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 |
+---------------------+
$>
长格式 (--execute
) 后面跟着一个等号 (=
)。
要在语句中使用带引号的值,您必须要么转义内部引号,要么在语句中使用与用于引用语句本身的引号不同的引号类型。您的命令处理器的功能决定了您可以使用单引号或双引号以及转义引号字符的语法。例如,如果您的命令处理器支持使用单引号或双引号进行引用,则可以在语句周围使用双引号,并在语句中使用单引号引用任何带引号的值。