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

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

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

$> mysql --user=root test

$> mysqladmin extended-status variables

$> mysqlshow --help 

$> 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。但是,对于短形式,如果给出了密码值,它必须紧跟在选项字母后面,中间没有空格:如果在选项字母后面有一个空格,程序无法判断后面的参数是否是密码值还是其他类型的参数。因此,以下两个命令具有完全不同的含义:
mysql -ptest

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'; 这样的语句。
SET GLOBAL general_log = ON;

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 会执行选项值中的语句并退出。这些语句必须用引号括起来。例如:

$> mysql -u root -p -e "SELECT VERSION();SELECT NOW()"

Enter password: ******

+------------+

|  VERSION() |

+------------+

|    8.0.19  |

+------------+

+----------------------------+

|           NOW()            |

+----------------------------+

|     019-09-03 10:36:48     |

+----------------------------+

$>

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

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

 

 

 

 

相关推荐

  1. MySQL学习——命令调用MySQL 程序

    2024-06-07 02:30:05       27 阅读
  2. MySQL命令导入导出数据库

    2024-06-07 02:30:05       41 阅读
  3. 使用 mysql 命令访问 ClickHouse 服务器

    2024-06-07 02:30:05       36 阅读
  4. 零开始学习MySQL

    2024-06-07 02:30:05       32 阅读
  5. MySQL学习笔记(持续更ing)

    2024-06-07 02:30:05       36 阅读
  6. `mysql`常用的的CIL命令工具

    2024-06-07 02:30:05       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 02:30:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 02:30:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 02:30:05       87 阅读
  4. Python语言-面向对象

    2024-06-07 02:30:05       96 阅读

热门阅读

  1. 【视频转码】ZLMediaKit漏洞报告的问题

    2024-06-07 02:30:05       30 阅读
  2. 2024-05-30 vscode python不能调试

    2024-06-07 02:30:05       34 阅读
  3. 【WPF编程宝典】第9讲:几何图形

    2024-06-07 02:30:05       30 阅读
  4. 设计模式之状态模式

    2024-06-07 02:30:05       30 阅读
  5. 展锐8541E配置USB ACM

    2024-06-07 02:30:05       32 阅读
  6. mongodb 编码格式 Detected BSON

    2024-06-07 02:30:05       28 阅读
  7. element-plus datePicker 如何输出时间戳

    2024-06-07 02:30:05       32 阅读
  8. 0098__gconf、dconf系统配置编辑器

    2024-06-07 02:30:05       30 阅读
  9. Python实现 植物大战僵尸

    2024-06-07 02:30:05       31 阅读
  10. Docker面试整理-Docker与虚拟机的区别是什么?

    2024-06-07 02:30:05       34 阅读
  11. Configure Google Chrome Settings with Group Policy

    2024-06-07 02:30:05       28 阅读