当前位置:   article > 正文

MySQL学习——从命令行调用MySQL 程序

MySQL学习——从命令行调用MySQL 程序

命令行(即你的 shell 或命令提示符)调用 MySQL 程序时,你需要输入程序名,后跟任何选项或其他参数,以指示程序你想要它执行什么操作。以下是一些示例程序调用的命令。

在这些示例中,$> 表示你的命令解释器的提示符;它并不是你需要输入的内容。你实际看到的提示符取决于你的命令解释器。典型的提示符包括 $ 用于 sh、ksh 或 bash,% 用于 csh 或 tcsh,以及 C:\> 用于 Windows 的 command.com 或 cmd.exe 命令解释器。

  1. $> mysql --user=root test
  2. $> mysqladmin extended-status variables
  3. $> mysqlshow --help 
  4. $> mysqldump -u root personnel

在命令行上使用选项时,需要遵循以下规则:

  • 选项是在命令名之后给出的。
  • 选项参数以一个短划线(-)或两个短划线(--)开头,取决于它是选项名称的短形式还是长形式。许多选项都有短形式和长形式。例如,-? 和 --help 是指示 MySQL 程序显示其帮助消息的选项的短形式和长形式。
  • 选项名称是区分大小写的。-v 和 -V 都是合法的,但具有不同的含义。(它们分别是 --verbose 和 --version 选项的短形式。)
  • 一些选项在选项名称之后需要一个值。例如,-h localhost 或 --host=localhost 指示客户端程序 MySQL 服务器主机。选项值告诉程序 MySQL 服务器运行的主机名。
  • 对于一个需要值的长选项,使用等号(=)将选项名称和值分开。对于需要值的短选项,选项值可以紧跟在选项字母后面,或者它们之间可以有一个空格:-hlocalhost 和 -h localhost 是等效的。但有一个例外是指定 MySQL 密码的选项。这个选项可以以长形式给出为 --password=pass_val 或 --password。在后一种情况下(没有给出密码值),程序会交互式地提示你输入密码。密码选项也可以以短形式给出为 -ppass_val 或 -p。但是,对于短形式,如果给出了密码值,它必须紧跟在选项字母后面,中间没有空格:如果在选项字母后面有一个空格,程序无法判断后面的参数是否是密码值还是其他类型的参数。因此,以下两个命令具有完全不同的含义:
  1. mysql -ptest
  2. mysql -p test

第一个命令 mysql -u user -ptest database 指示 mysql 客户端使用用户名 user 和密码 test 连接到数据库,但并未指定默认的数据库。因为密码值 test 紧跟在 -p 后面,没有空格,所以 mysql 客户端会直接使用这个密码值进行连接。

第二个命令 mysql -u user -p database 指示 mysql 客户端使用用户名 user 并提示用户输入密码,同时指定 test 作为默认的数据库。因为在 -p 和密码值之间没有直接指定密码,所以 mysql 客户端会等待用户输入。

  • 在选项名称中,短划线(-)和下划线(_)在大多数情况下可以互换使用,但开头的短划线不能替换为下划线。例如,--skip-grant-tables 和 --skip_grant_tables 是等效的。

在 MySQL 手册中,我们在选项名称中使用短划线,除非下划线有特定的意义。例如,--log-bin 和 --log_bin 是不同的选项。

  • MySQL 服务器有一些只能在启动时指定的命令选项,以及一组系统变量,其中一些可以在启动时或运行时设置,或者两者都可以。系统变量名称使用下划线而不是短划线,并且在运行时引用(例如,使用 SET 或 SELECT 语句)时,必须使用下划线来编写它们。例如,要设置 log_bin 系统变量,您会在运行时使用 SET GLOBAL log_bin = 'path/to/log-bin'; 这样的语句。
  1. SET GLOBAL general_log = ON;
  2. SELECT @@GLOBAL.general_log;

在 MySQL 服务器启动时,系统变量的语法与命令选项的语法相同,因此在变量名称中,短划线(-)和下划线(_)可以互换使用。例如,--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 命令本身并不支持直接指定 ping 的次数和两次 ping 之间的休眠时间。mysqladmin ping 仅仅用于测试到 MySQL 服务器的连接是否活跃。但是,可以使用 shell 脚本来模拟这个行为。以下是一个 bash 脚本的示例,它使用 mysqladmin ping 命令来 ping MySQL 服务器 1024 次,并在每次 ping 之间休眠 10 秒:

mysqladmin --count=1K --sleep=10 ping
  • 当在命令行上指定选项值时,如果值中包含文件名,应避免使用 ~(shell 元字符)。因为在不同的情况下,~ 可能不会被解释为你所期望的。

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

  1. $> mysql -u root -p -e "SELECT VERSION();SELECT NOW()"
  2. Enter password: ******
  3. +------------+
  4. | VERSION() |
  5. +------------+
  6. |    8.0.19 |
  7. +------------+
  8. +----------------------------+
  9. |        NOW()      |
  10. +----------------------------+
  11. | 019-09-03 10:36:48 |
  12. +----------------------------+
  13. $>

当在命令行中使用长格式选项(如 --execute)时,后面通常会跟着一个等号(=)来指定选项的值。

在 SQL 语句内部使用引号时,你需要对内部引号进行转义,或者使用与语句本身引号不同的引号类型。你的命令处理器(如 bash、cmd.exe、PowerShell 等)决定了你可以使用单引号还是双引号,以及转义引号字符的语法。

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/668832
推荐阅读
相关标签
  

闽ICP备14008679号