使用命令行选项

来自泡泡学习笔记
BrainBs讨论 | 贡献2023年7月2日 (日) 16:07的版本 (创建页面,内容为“使用命令行选项 在命令行上指定程序选项需要遵循以下规则: 1、选项紧随命令名称之后。 2、选项参数以一个短横线或两个短横线开始,具体取决于选项名称是短格式还是长格式。许多选项都有短格式和长格式。例如,-?和--help分别是指示MySQL程序显示其帮助信息的选项的短格式和长格式。 3、选项名称区分大小写。-v和-V都是合法的,且具有不同的…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

使用命令行选项 在命令行上指定程序选项需要遵循以下规则:

1、选项紧随命令名称之后。

2、选项参数以一个短横线或两个短横线开始,具体取决于选项名称是短格式还是长格式。许多选项都有短格式和长格式。例如,-?和--help分别是指示MySQL程序显示其帮助信息的选项的短格式和长格式。

3、选项名称区分大小写。-v和-V都是合法的,且具有不同的含义。它们是--verbose和--version选项的相应短格式。

4、一些选项在选项名称之后需要一个值。例如,-h localhost或--host=localhost表示MySQL服务器主机给客户端程序。选项值告诉程序MySQL服务器所在的主机名。

对于需要值的长选项,在选项名称和值之间用等号分隔。对于需要值的短选项,选项值可以紧跟在选项字母后面,也可以在两者之间有一个空格:-hlocalhost和-h localhost是等价的。这个规则的例外是指定MySQL密码的选项。这个选项可以以--password=pass_val的长格式给出,也可以以--password的形式给出。在后一种情况下(没有给出密码值),程序会交互式提示您输入密码。密码选项也可以以-ppass_val的短格式或-p的形式给出。但是,对于短格式,如果给出了密码值,则必须在选项字母后面紧跟着没有间隔的密码值:如果选项字母后面跟着一个空格,则程序无法判断后面的参数是密码值还是其他类型的参数。因此,以下两个命令具有完全不同的含义:

mysql -ptest
mysql -p test

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

5、在选项名称中,短横线(-)和下划线(_)在大多数情况下可以互换使用,虽然前导短横线不能用作下划线。例如,--skip-grant-tables和--skip_grant_tables是等价的。

6、MySQL服务器有某些只能在启动时指定的命令选项,以及一组系统变量,其中一些可以在启动时、运行时或两者同时设置。系统变量名称使用下划线而不是短横线,并且在运行时引用(例如使用SET或SELECT语句)时必须使用下划线编写:

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

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

7、对于需要数值的选项,可以在值后面加上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

8、在指定文件名作为选项值时,避免使用~ 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)后面跟着等号(=)。

要在语句中使用带引号的值,必须对内部引号进行转义,或者在语句中使用与用于引用语句本身的引号不同类型的引号。您的命令处理器的功能决定了您选择使用单引号或双引号以及转义引号字符的语法。例如,如果您的命令处理器支持使用单引号或双引号进行引用,您可以在语句周围使用双引号,并在语句中使用单引号引用任何带引号的值。