在命令行中指定的程序选项遵循以下规则:
选项在命令名后面给出。
选项参数以一个破折号或两个破折号开头,具体取决于它是短格式还是长格式的选项名称。许多选项都有短期和长期形式。例如,
-?
并且--help
是指示MySQL程序,以显示它的帮助消息的选项的短和长的形式。选项名称区分大小写。
-v
并且-V
都是合法的并且具有不同的含义。(它们是--verbose
和--version
期权的相应简写形式 。)有些选项会根据选项名称取值。例如,
-h localhost
或者--host=localhost
向客户端程序指明MySQL服务器主机。该选项值告诉程序运行MySQL服务器的主机的名称。对于具有值的长选项,请使用
=
符号来分隔选项名称和值。对于取值较短的选项,选项值可以紧跟在选项字母后面,或者:-hlocalhost
和之间可以有一个空格-h localhost
。此规则的一个例外是指定您的MySQL密码的选项。这个选项可以以长形式 或作为。在后一种情况下(没有给出密码值),程序会提示您输入密码。密码选项也可以简写为 或作为--password=
pass_val
--password
-p
pass_val
-p
。但是,对于简短格式,如果给出了密码值,则它必须遵循选项字母,而 没有中间空格。原因是如果空格跟在选项字母后面,那么程序无法判断后面的参数是否应该是密码值或其他类型的参数。因此,以下两个命令有两个完全不同的含义:shell> mysql -ptest shell> mysql -p test
第一个命令指示mysql使用密码值
test
,但不指定默认数据库。第二个指示 mysql提示输入密码值并test
用作默认数据库。在选项名称中,可以交替使用dash(
-
)和underscore(_
)。例如,--skip-grant-tables
并且--skip_grant_tables
是等同的。(但是,不能将主要的破折号作为下划线给出。)对于采用数字值的选择,该值可以与一个后缀被给予
K
,M
或G
(大写或小写),以指示1024一乘法器,1024 2或1024 3。例如,以下命令告诉mysqladmin在服务器上ping 1024次,每次ping之间休眠10秒:shell> mysqladmin --count=1K --sleep=10 ping
当指定文件名作为选项值时,避免使用
~
shell元字符,因为它可能不会像您期望的那样被解释。
在命令行中给出的包含空格的选项值必须加引号。例如, --execute
(或-e
)选项可以与mysql一起使用,以将SQL语句传递给服务器。当使用这个选项时, mysql执行选项值中的语句并退出。这些陈述必须用引号括起来。例如,您可以使用以下命令来获取用户帐户的列表:
shell> mysql -u root -p --execute="SELECT User, Host FROM mysql.user"
Enter password: ******
+------+-----------+
| User | Host |
+------+-----------+
| | gigan |
| root | gigan |
| | localhost |
| jon | localhost |
| root | localhost |
+------+-----------+
shell>
长表单(--execute
)后跟一个等号(=
)。
如果您希望在语句中使用引用的值,您将需要转义内部引号,或者在引用语句本身的语句中使用不同类型的引号。命令处理器的功能决定了您是否可以使用单引号或双引号以及用于转义引号的语法。例如,如果您的命令处理器支持使用单引号或双引号引号,则可以在该语句周围使用双引号,并在该语句内使用任何引号值的单引号。本文由学什么技术好提供翻译
多个SQL语句可以在命令行中的选项值中传递,用分号分隔:
shell> mysql -u root -p -e "SELECT VERSION();SELECT NOW()"
Enter password: ******
+---------------------+
| VERSION() |
+---------------------+
| 5.8.0-m17-debug-log |
+---------------------+
+---------------------+
| NOW() |
+---------------------+
| 2015-11-05 20:00:20 |
+---------------------+