Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Using Options on the Command Line

6.2.2.1 使用命令行选项

命令行指定的程序选项遵循以下规则:

  • 选项在命令名称后面。

  • 一个选项参数以一 dash 或两个 dashes 开头,取决于该选项是否是短形式或长形式。许多选项都有短形式和长形式。例如,-?--help 是帮助信息的短形式和长形式。

  • 选项名称敏感。-v-V 都是合法的,且有不同的含义(它们分别是--verbose--version 选项的短形式。)

  • 一些选项后面跟着一个值。例如,-h localhost--host=localhost 指示客户端程序 MySQL 服务器的主机名。选项值告诉程序 MySQL 服务器在哪个主机上运行。

  • 对于长选项,使用=符号将选项名称和值分开。对于短选项,如果选项值紧跟在选项字母后,也可以添加空格:-hlocalhost-h localhost 等价。有一种例外是指定 MySQL 密码的选项。这选项可以以长形式为--password=pass_val 或者以短形式为--password。在后者(无密码值)情况下,程序将交互式地提示您输入密码。该选项也可以以短形式为 -ppass_val 或者为 -p。然而,在短形式中,如果给出密码值,必须紧跟在选项字母后不允许空格:如果添加了空格,程序无法判断是否是密码值或其他类型的参数。因此,以下两个命令具有完全不同的含义:

    mysql -ptest
    mysql -p test

    第一个命令 instructs mysql 使用密码值为test,但不指定默认数据库。第二个命令 instructs mysql 提示输入密码值,并使用test 作为默认数据库。

  • 在选项名称中,减号 (-) 和下划线 (_) 通常可以互换使用,但前导减号不能被写成下划线。例如,--skip-grant-tables--skip_grant_tables 等价。

    在本手册中,我们使用减号在选项名称中,除了下划线在某些情况下是有意义的。例如,--log-bin--log_bin,是不同的选项。我们鼓励您也这样做。

  • MySQL 服务器有一些只能在启动时指定的命令选项,以及一组系统变量,一些变量可以在启动时、运行时或两者都设置。系统变量名称使用下划线,而不是减号,且在运行时(例如,使用SETSELECT 语句),必须使用下划线写出:

    SET GLOBAL general_log = ON;
    SELECT @@GLOBAL.general_log;

    服务器启动时,系统变量的语法与命令选项相同,因此在变量名中,可以互换使用连字符和下划线。例如,--general_log=ON--general-log=ON 是等价的。(这同样适用于在选项文件中设置系统变量。)

  • 对于需要数字值的选项,可以使用KMG后缀来表示1024、1024²或1024³的乘数。从MySQL 8.0.14开始,也可以使用TPE后缀来表示1024⁴、1024⁵或1024⁶的乘数。后缀字母可以是大写或小写。

    mysqladmin 命令将服务器ping 1024 次,每次之间睡眠 10 秒:

    mysqladmin --count=1K --sleep=10 ping
  • 在指定文件名作为选项值时,避免使用~ shell 元字符。它可能不会被解释为你所期望的。

命令行中包含空格的选项值必须被引号括起来。例如,使用--execute(或-e)选项可以将一个或多个分号分隔的SQL语句传递给服务器。当使用这个选项时,mysql 执行选项值中的语句并退出。这些语句必须被引号括起来,例如:

$> mysql -u root -p -e "SELECT VERSION();SELECT NOW()"
Enter password: ******
+------------+
| VERSION()  |
+------------+
| 8.0.19     |
+------------+
+---------------------+
| NOW()               |
+---------------------+
| 2019-09-03 10:36:48 |
+---------------------+
$>
Note

长形式(--execute)后面跟一个等号(=)。

在语句中使用引号值,你必须么是转义内层引号,或者在语句中使用与用来引号语句本身不同的引号类型。命令处理器的能力决定了你可以使用单引号或双引号,并且用于转义引号字符的语法。例如,如果你的命令处理器支持使用单引号或双引号,你可以在语句中使用双引号,且在语句中的引号值中使用单引号。