MySQL Shell是MySQL Server的高级客户端和代码编辑器。MySQL Shell提供以下功能:
MySQL Shell用以下语言处理代码:JavaScript,Python和SQL。根据当前处于活动状态的语言,将任何输入的代码作为这些语言之一进行处理。还有一些特定的MySQL Shell命令,带有前缀 \,使您可以配置MySQL Shell,而与当前选择的语言无关。
MySQL Shell提供了一种交互式代码执行模式,您可以在MySQL Shell提示符下键入代码并处理每个输入的语句,并将处理结果打印在屏幕上。使用中的终端支持Unicode文本输入。支持彩色终端。
可以使用命令编写多行代码,使MySQL Shell可以缓存多行,然后将其作为一条语句执行。
除了交互执行代码外,MySQL Shell还可以从不同来源获取代码并进行处理。这种以非交互方式处理代码的方法称为 批处理执行。
由于批处理执行模式旨在用于单一语言的脚本处理,因此它仅限于具有最少的非格式化输出并禁用命令的执行。为了避免这些限制,请使用--interactive 命令行选项,该选项告诉MySQL Shell执行输入,就好像它是交互式会话一样。在此模式下,逐行处理输入,就像在交互式会话中键入每行一样。
MySQL Shell包含以下用JavaScript和Python实现的API,可用于开发与MySQL交互的代码。
MySQL Shell旨在为所有支持X协议的MySQL产品提供集成的命令行客户端。MySQL Shell的开发功能专为使用X协议的会话而设计。MySQL Shell还可以使用旧版MySQL协议连接到不支持X协议的MySQL服务器。X DevAPI的最少功能集可用于使用旧版MySQL协议创建的会话。
您可以以报告和扩展对象的形式定义对MySQL Shell基本功能的扩展。可以使用JavaScript或Python创建报告和扩展对象,并且无论活动的MySQL Shell语言如何,都可以使用报告和扩展对象。您可以将报表和扩展对象保留在MySQL Shell启动时自动加载的插件中。MySQL Shell具有几个可供使用的内置报告。
MySQL Shell包含以下用于MySQL的实用程序:
MySQL Shell使用API命令语法公开了许多功能,使您能够轻松地将mysqlsh与其他工具集成 。例如,您可以创建bash脚本来使用此功能管理InnoDB集群。使用语法可绕过REPL接口将操作直接传递给MySQL Shell全局对象。
MySQL Shell可以表、选项卡或垂直格式或JSON输出形式返回结果。为了帮助将MySQL Shell与外部工具集成在一起,可以在从命令行启动MySQL Shell时为所有输出激活JSON包装。
MySQL Shell可以按您选择的详细级别记录有关执行过程的信息。日志信息可以发送到应用程序日志文件,其他可见目标和控制台的任意组合。
在MySQL Shell中,与MySQL Server实例的连接由会话对象处理。当您首次建立与MySQL Server实例的连接时(可以在启动MySQL Shell时执行,也可以在之后进行),将session创建一个名为MySQL Shell全局对象 来表示此连接。该会话称为全局会话,因为它可以在所有MySQL Shell执行模式中使用。在SQL模式下,全局会话用于执行语句;在JavaScript模式和Python模式下,全局会话可通过名为的对象使用session。您可以使用和模块mysqlx 以及mysqlJavaScript和Python模块中可用的功能来创建其他会话对象,并且可以将这些会话对象之一设置为 session全局对象,因此您可以在任何模式下使用它。
参考文献:https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-features.html
最新版的MySQL Shell下载地址:https://dev.mysql.com/downloads/shell/
若下载其他版本的MySQL Shell,去MySQL官网的的下载社区:
将下载的glibc版的压缩包上传到服务器:
直接解压后进入目录:
输入命令可直接进入MySQL Shell。
MySQL Shell提供的命令使您能够修改代码编辑器的执行环境,例如,配置活动的编程语言或MySQL Server连接。下表列出了与当前选择的语言无关的可用命令。由于命令需要独立于执行模式而可用,因此它们以转义序列(\ 字符)开头。
命令 |
别名/快捷方式 |
描述 |
\help |
\h 要么 \? |
打印有关MySQL Shell的帮助,或搜索在线帮助。 |
\quit |
\q 要么 \exit |
退出MySQL Shell。 |
\ |
在SQL模式下,开始多行模式。输入空行时,将缓存并执行代码。 |
|
\status |
\s |
显示当前的MySQL Shell状态。 |
\js |
将执行模式切换为JavaScript。 |
|
\py |
将执行模式切换为Python。 |
|
\sql |
将执行模式切换为SQL。 |
|
\connect |
\c |
连接到MySQL服务器。 |
\reconnect |
重新连接到同一MySQL服务器。 |
|
\use |
\u |
指定要使用的架构。 |
\source |
\.或source(无反斜杠) |
使用活动语言执行脚本文件。 |
\warnings |
\W |
显示语句生成的任何警告。 |
\nowarnings |
\w |
不要显示语句生成的任何警告。 |
\history |
查看和编辑命令行历史记录。 |
|
\rehash |
手动更新自动完成名称缓存。 |
|
\option |
查询和更改MySQL Shell配置选项。 |
|
\show |
使用提供的选项和参数运行指定的报告。 |
|
\watch |
使用提供的选项和参数运行指定的报告,并定期刷新结果。 |
|
\edit |
\e |
在默认系统编辑器中打开一个命令,然后将其显示在MySQL Shell中。 |
\system |
\! |
运行指定的操作系统命令,并在MySQL Shell中显示结果。 |
该\help命令可以使用或不使用参数。如果不带参数使用,则会打印一条常规帮助消息,其中包括有关可用的MySQL Shell命令,全局对象和主要帮助类别的信息。
该\connect命令用于连接到MySQL服务器,如果需要密码,则会提示您输入密码。
\reconnect指定 的命令没有任何参数或选项。如果与服务器的连接丢失,则可以使用\reconnect命令,这使MySQL Shell使用现有的连接参数尝试多次会话重新连接尝试。如果这些尝试失败,则可以使用\connect命令并指定连接参数来建立新的连接。
该\status命令显示有关当前全局连接的信息。这包括有关所连接的服务器,正在使用的字符集,正常运行时间等信息。
\source用来执行指定路径的脚本文件代码,在相应模式下可以执行SQL、JavaScript或Python任一种语言代码,当然用MySQL Shell执行SQL代码必须要在SQL模式下的。
\source /tmp/mydata.sql
要求活动的全局发展会话,\use命令将当前图表设置为特定的schema_name ,并将db变量更新到代表所选图表的对象中。
\use schema_name
该\history命令列出了您先前在MySQL Shell中发出的命令。
\rehash 手动更新缓存,比如\use schema下载了一个新的图表到内存,\rehash更新自动完成的缓存。
可以设置MySQL Shell用一个外部的Pager命令来显示屏幕输出,如在线帮助或SQL检索结果。