命令行上指定的程序选项遵循以下规则:
-
选项在命令名称后给出。
-
选项参数以一个短划线(
-
)或两个短划线(--
)开头,具体取决于它是选项名称的短形式还是长形式。许多选项有短格式和长格式。例如,-?
和--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
表和--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 , 1024^2 或 1024^3 的乘数。从 MySQL 8.0.14 开始,后缀也可以是 T 、P 和 E ,表示乘数为 1024^4 、1024^5 或 1024^6 。后缀字母可以是大写或小写。
例如,以下命令告诉 mysqladmin ping 服务器 1024 次,每次 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
) 后跟一个等号(=
)。
若要在语句中使用引号,必须转义内部引号,或者在语句内使用不同于用于引用语句本身的引号类型的引号。命令处理器的功能决定了您可以选择使用单引号还是双引号以及转义引号字符的语法。例如,如果命令处理器支持使用单引号或双引号进行引用,则可以在语句周围使用双引号,并对语句中的任何引用值使用单引号。