MySQL壳API8.0.24
MySQL产品的统一开发接口
方法|属性|全体成员名单
壳类引用

提供对通用函数和属性的访问。更多…

方法

std::要查看< ShellBaseSession > get_session()
返回全局会话。
无效 断开连接()
断开全局会话。
保龄球 重新连接()
重新连接全局会话。
无效 状态()
显示shell的连接状态信息。更多…
dict parse_uri(str uri)
解析URI字符串的实用程序函数。更多…
str unparse_uri(dict类型选项
将给定的连接选项格式化为适合mysqlsh的URI字符串。更多…
str 提示(str消息,dict类型选项
从用户那里提示数据的实用函数。更多…
会话 连接(连接数据连接数据,str密码)
建立shell全局会话。更多…
会话 connect_to_primary(连接数据连接数据,str密码)
建立shell全局会话,连接到InnoDB集群或副本集的主节点。更多…
会话 open_session(连接数据连接数据,str密码)
建立并返回会话。更多…
没有一个 set_session(会议会话)
设置全局会话。更多…
没有一个 set_current_schema(str名称)
在全局会话上设置活动模式。更多…
没有一个 日志(str级别,str消息)
将一个条目记录到shell的日志文件。更多…
列表 list_credential_helpers()
返回字符串列表,其中每个字符串都是当前平台上可用的帮助器的名称。更多…
没有一个 store_credential(str url, str密码)
使用配置的帮助器存储给定的凭据。更多…
没有一个 delete_credential(str url)
使用配置的帮助器删除给定URL的凭据。更多…
没有一个 delete_all_credentials()
删除由已配置的帮助器管理的所有凭据。更多…
列表 list_credentials()
检索由配置的帮助器存储的所有url的列表。更多…
没有一个 enable_pager()
中指定的分页器shell.options.pager对于当前脚本模式。更多…
没有一个 disable_pager()
为当前脚本模式禁用分页器。更多…
没有一个 register_report(str名称,str类型,函数报告,字典描述)
注册一个新的用户定义报告。更多…
UserObject create_extension_object()
创建一个扩展对象,它可用于扩展shell功能。更多…
未定义的 add_extension_object_member(对象对象,str名称,值成员,字典定义)
向扩展对象添加成员。更多…
未定义的 register_global(str名称,对象对象,字典定义)
将扩展对象注册为shell全局对象。更多…
int dump_rows(ShellBaseResult结果,str格式)
将给定的结果集对象格式化并转储到控制台。更多…

属性

选项 选项
提供对修改shell行为的选项的访问权。
报告 报告
提供对内置报表和用户定义报表的访问。
str 版本
MySQL壳牌版本信息。

详细描述

提供对通用函数和属性的访问。

成员函数的文档10bet官方网站

状态()

空白状态

显示shell的连接状态信息。

这显示了\status命令所显示的相同信息。

parse_uri ()

dict parse_uri str uri

解析URI字符串的实用程序函数。

参数
uri 一个URI字符串。
返回
包含给定URI字符串中包含的所有元素的字典。

解析URI字符串并返回包含每个找到元素的项的字典。

一个基本URI字符串有以下格式:

[方案:/ /][用户(密码):@]<主机(港口):|套接字>[/模式][?选项=价值选择=值…]

有关URI格式以及返回的字典的更多信息,请查看连接数据

unparse_uri ()

str unparse_uri dict 选项

将给定的连接选项格式化为适合mysqlsh的URI字符串。

参数
选项 一个带有连接选项的字典。
返回
一个URI字符串

这个函数组装了一个MySQL连接字符串,可以在shell或X DevAPI连接器中使用。

提示()

str提示 str 消息
dict 选项

从用户那里提示数据的实用函数。

参数
消息 包含要显示给用户的消息的字符串。
选项 带有更改函数行为的选项的可选字典。
返回
包含来自用户的输入的字符串值。

该函数允许创建需要与用户交互的脚本来收集数据。

不带选项地调用此函数将向用户显示给定的消息并等待输入。用户输入的信息将是返回值

选项字典可以包含以下选项:

  • defaultValue:无数据时返回的字符串值。
  • Type:定义提示类型的字符串值。type选项支持以下值:
  • 密码:用户输入的密码不会在屏幕上显示。

connect ()

会话连接 ConnectionData connectionData
str 密码

建立shell全局会话。

参数
connectionData 用于建立会话的连接数据。
密码 可选设置在建立会话时使用的密码。

该函数将使用接收到的连接数据建立全局会话。

密码可以包含在connectionData中,只有在connectionData中不包含密码时,才应该使用可选参数。如果两者都指定了,password参数将覆盖connectionData上定义的密码。

连接数据可以用以下格式指定:

  • 一个URI字符串
  • 一个带有连接选项的字典

一个基本URI字符串有以下格式:

[方案:/ /][用户(密码):@]<主机(港口):|套接字>[/模式][?选项=价值选择=值…]

连接选项

以下选项在URI或字典中使用都是有效的:

  • SSL -mode:连接中使用的SSL模式。
  • ssl-ca: PEM格式的X509证书颁发机构文件路径。
  • ssl-capath: X509证书颁发机构PEM格式文件所在目录的路径。
  • SSL -cert: PEM格式的SSL公钥证书文件路径。
  • SSL -key: PEM格式的SSL私钥文件路径。
  • ssl-crl:包含证书吊销列表的文件路径。
  • ssl-crlpath:证书吊销列表文件所在目录的路径。
  • ssl-cipher:使用TLSv1.2以下TLS协议的连接所允许的加密密码列表。
  • tls-version:允许安全连接的协议列表。
  • TLS -ciphers:要使用的TLS v1.3密码列表。
  • auth方法:身份验证方法。
  • get-server-public-key:向服务器请求基于RSA密钥对的密码交换所需的公钥。当使用禁用SSL模式的经典MySQL会话连接MySQL 8.0服务器时使用。
  • server-public-key-path:一个文件的路径名,该文件包含服务器用于基于RSA密钥对的密码交换所需的公钥的客户端副本。当使用禁用SSL模式的经典MySQL会话连接MySQL 8.0服务器时使用。
  • connect-timeout:连接超时时间,以毫秒为单位。如果没有提供,将使用默认的10秒超时。指定值为0将禁用连接超时。
  • compression:在客户/服务器协议中启用压缩。
  • compression-algorithms:在服务器/客户端协议中使用压缩算法。
  • compression-level:在客户端/服务器协议中使用此压缩级别。
  • connection-attributes:要在PERFORMANCE_SCHEMA连接属性表中注册的连接属性列表。
  • LOCAL - INFILE:启用/禁用LOAD DATA LOCAL INFILE。

基础连接选项

  • 方案:连接时使用的协议。
  • user:连接时使用的MySQL用户名。
  • dbUser:用户别名。
  • Password:连接时使用的密码。
  • dbPassword:与password相同。
  • host:连接中要使用的主机名或IP地址。
  • port: TCP连接使用的端口号。
  • Socket:通过Unix套接字连接时使用的套接字文件名。
  • Schema:连接完成后要选择的模式。
注意
dbUser和dbPassword选项将在未来的版本中删除。

连接选项不区分大小写,只能定义一次。

如果一个选项被定义了不止一次,就会产生一个错误。

有关连接数据格式的详细说明,请参阅连接数据

connect_to_primary ()

会话connect_to_primary ConnectionData connectionData
str 密码

建立shell全局会话,连接到InnoDB集群或副本集的主节点。

参数
connectionData 可选用于建立会话的连接数据。
密码 可选建立会话时使用的密码。
返回
建立会话。

确保目标服务器是一个InnoDB集群或副本集的成员,如果它不是PRIMARY,找到PRIMARY并连接到它。将全局会话对象设置为已建立的会话并返回该对象。

如果没有指定connectionData,则此函数使用全局shell会话,如果没有,则引发异常。

密码可以包含在connectionData中,只有在connectionData中不包含密码时,才应该使用可选参数。如果两者都指定了,password参数将覆盖connectionData上定义的密码。

连接数据可以用以下格式指定:

  • 一个URI字符串
  • 一个带有连接选项的字典

一个基本URI字符串有以下格式:

[方案:/ /][用户(密码):@]<主机(港口):|套接字>[/模式][?选项=价值选择=值…]

连接选项

以下选项在URI或字典中使用都是有效的:

  • SSL -mode:连接中使用的SSL模式。
  • ssl-ca: PEM格式的X509证书颁发机构文件路径。
  • ssl-capath: X509证书颁发机构PEM格式文件所在目录的路径。
  • SSL -cert: PEM格式的SSL公钥证书文件路径。
  • SSL -key: PEM格式的SSL私钥文件路径。
  • ssl-crl:包含证书吊销列表的文件路径。
  • ssl-crlpath:证书吊销列表文件所在目录的路径。
  • ssl-cipher:使用TLSv1.2以下TLS协议的连接所允许的加密密码列表。
  • tls-version:允许安全连接的协议列表。
  • TLS -ciphers:要使用的TLS v1.3密码列表。
  • auth方法:身份验证方法。
  • get-server-public-key:向服务器请求基于RSA密钥对的密码交换所需的公钥。当使用禁用SSL模式的经典MySQL会话连接MySQL 8.0服务器时使用。
  • server-public-key-path:一个文件的路径名,该文件包含服务器用于基于RSA密钥对的密码交换所需的公钥的客户端副本。当使用禁用SSL模式的经典MySQL会话连接MySQL 8.0服务器时使用。
  • connect-timeout:连接超时时间,以毫秒为单位。如果没有提供,将使用默认的10秒超时。指定值为0将禁用连接超时。
  • compression:在客户/服务器协议中启用压缩。
  • compression-algorithms:在服务器/客户端协议中使用压缩算法。
  • compression-level:在客户端/服务器协议中使用此压缩级别。
  • connection-attributes:要在PERFORMANCE_SCHEMA连接属性表中注册的连接属性列表。
  • LOCAL - INFILE:启用/禁用LOAD DATA LOCAL INFILE。

基础连接选项

  • 方案:连接时使用的协议。
  • user:连接时使用的MySQL用户名。
  • dbUser:用户别名。
  • Password:连接时使用的密码。
  • dbPassword:与password相同。
  • host:连接中要使用的主机名或IP地址。
  • port: TCP连接使用的端口号。
  • Socket:通过Unix套接字连接时使用的套接字文件名。
  • Schema:连接完成后要选择的模式。
注意
dbUser和dbPassword选项将在未来的版本中删除。

连接选项不区分大小写,只能定义一次。

如果一个选项被定义了不止一次,就会产生一个错误。

有关MySQL连接数据的更多信息,请参见连接数据

异常
RuntimeError 以下场景:
  • 如果没有给出connectionData,并且没有全局shell会话。
  • 如果InnoDB集群或复制集中没有主成员。
  • 如果目标服务器不是InnoDB集群或副本集的成员。

open_session ()

会话open_session ConnectionData connectionData
str 密码

建立并返回会话。

有关连接数据格式的详细说明,请参阅连接数据

set_session ()

空白set_session 会话 会话

设置全局会话。

参数
会话 要用作全局会话的会话对象。

使用来自变量的会话设置全局会话。

set_current_schema ()

空白set_current_schema str 的名字

在全局会话上设置活动模式。

参数
的名字 要设置为活动模式的名称。

模式设置为活动后,就可以通过db全局对象。

日志()

没有日志 str 水平
str 消息

将一个条目记录到shell的日志文件。

参数
水平 ERROR, WARNING, INFO, DEBUG, DEBUG2, DEBUG3中的一个作为字符串
消息 要记录的文本

只有级别值等于或低于活动值(通过——log-level设置)的消息才会被记录。

list_credential_helpers ()

shcore: Array_t list_credential_helpers

返回字符串列表,其中每个字符串都是当前平台上可用的帮助器的名称。

返回
包含可用凭据帮助程序名称的字符串列表。

特殊值“default”和“”不在列表中。只有此列表中的值(加上“default”和“”)可以用来设置“credentialStore”。助手”选项。

store_credential ()

没有store_credential str url
str 密码

使用配置的帮助器存储给定的凭据。

参数
url 存储密码的服务器URL。
密码 指定URL的可选密码。

如果URL有无效的表单抛出ArgumentError。

在以下场景中抛出RuntimeError:

  • 如果配置的凭据帮助程序无效。
  • 如果存储凭据失败。

如果未提供密码,则显示密码提示。如果URL已经在存储中,它的值将被覆盖。URL需要以以下形式:user@(主机(港口):|插座)

delete_credential ()

没有delete_credential str url

使用配置的帮助器删除给定URL的凭据。

参数
url 要删除的服务器的URL。

如果URL有无效的表单抛出ArgumentError。

在以下场景中抛出RuntimeError:

  • 如果配置的凭据帮助程序无效。
  • 如果删除凭据失败。

URL需要以以下形式:user@(主机(港口):|插座)

delete_all_credentials ()

空白delete_all_credentials

删除由已配置的帮助器管理的所有凭据。

在以下场景中抛出RuntimeError:

  • 如果配置的凭据帮助程序无效。
  • 如果删除凭据失败。

list_credentials ()

shcore: Array_t list_credentials

检索由配置的帮助器存储的所有url的列表。

在以下场景中抛出RuntimeError:

  • 如果配置的凭据帮助程序无效。
  • 如果列出url失败。
返回
由配置的凭据帮助器存储的url列表。

enable_pager ()

空白enable_pager

中指定的分页器shell.options.pager对于当前脚本模式。

所有后续文本输出(提示和用户交互除外)都将被转发到分页器。

此行为直到disable_pager ()调用或更改当前脚本模式。

更改脚本模式与调用具有相同的效果disable_pager ()

的值shell.options.pager选项,则将自动使用新的分页器。

如果shell.options.pager选项在调用此方法时设置为空字符串,则分页器直到shell.options.pager设置为非空字符串。

此方法在非交互模式下无效。

disable_pager ()

空白disable_pager

为当前脚本模式禁用分页器。

的当前值。shell.options.pager选项不会通过调用此方法更改。

此方法在非交互模式下无效。

register_report ()

没有register_report str 的名字
str 类型
函数 报告
dict 描述

注册一个新的用户定义报告。

参数
的名字 已注册报告的名称。
类型 已注册报告的类型,可从“列表”、“报告”或“打印”中选择一种。
报告 函数在请求报告时调用。
描述 描述正在注册的报表的可选字典。

在以下场景中抛出ArgumentError:

  • 如果已经注册了具有相同名称的报表。
  • 如果报表的'name'不是有效的脚本标识符。
  • 如果'type'不是'list', 'report'或'print'中的一个。
  • 如果报表选项的'name'不是有效的脚本标识符。
  • 如果在多个选项中重用报表选项的'name'。
  • 如果报表选项的“快捷方式”不是字母数字字符。
  • 如果在多个选项中重用报表选项的'shortcut'。
  • 如果报表选项的'type'包含无效值。
  • 如果'description'字典的'argc'键持有无效值。

的名字的值必须是唯一的,并且是有效的脚本标识符。使用不区分大小写的比较来验证惟一性。

类型的报告必须是:'list', 'report'或'print'中的一个。此选项指定调用此报告的预期结果,以及如果使用\显示\看命令。

报告函数必须具有以下签名:字典报告(会话会话,列表argv,字典选项),地点:

  • session -报表用于获取数据的会话对象。
  • argv(可选)-表示附加参数的字符串数组。
  • options(可选)—具有各种特定于报表的选项的值的字典。

每个报告返回一个带有以下键的字典:

  • report (required) -包含报告的JSON对象列表。此列表中项目的数量和类型取决于报告的类型。

描述字典可以包含以下可选键:

  • brief—提供报告简要描述的字符串值。
  • details—提供报告详细描述的字符串列表。
  • options—描述报告接受的选项的字典列表。如果不提供此选项,则报告不接受任何选项。
  • argc -表示报告接受的附加参数数量的字符串。这个字符串可以是:一个指定参数确切数量的数字,指定零个或多个参数,两个由'-'分隔的数字,指定一个参数范围或一个数字和用'-'分隔,指定一个没有上界的参数范围。如果不提供,则报告不接受任何附加参数。
  • examples -描述报告示例用法的字典列表。

可选选项List必须包含具有以下键的字典:

  • name(字符串,必选)-选项的名称,必须是有效的脚本标识符。在使用调用报表时指定长形式(——long)的选项名\显示\看作为函数调用此报告时,命令或选项的键名。对于报表必须是唯一的。
  • 快捷方式(字符串,可选)-选项的替代名称,必须是字母数字字符。这指定了短形式(-s)的选项名称。选项的缩写形式只能在调用using的报表时使用\显示\看命令时,它在作为函数调用报表时不可用。如果未指定此键,则option将没有缩写形式。对于报表必须是唯一的。
  • Brief(字符串,可选)-选项的简要描述。
  • 详细信息(字符串数组,可选)——选项的详细描述。
  • Type(字符串,可选)-选项的值类型。允许的值是:'string', 'bool', 'integer', 'float'。如果该键未指定,则默认为'string'。如果type指定为'bool',则此选项为开关:如果在调用报告时未指定该选项,则默认为'false';在调用报表时指定\显示\看命令它不接受任何值,默认为'true';如果在使用函数调用调用报表时指定它,则它必须有一个有效值。
  • required(布尔值,可选)-是否需要此选项。如果不指定该键,默认为false。如果option是'bool'则'required'不能为'true'。
  • Values(字符串列表,可选)——允许的值列表。只有'string'选项可以有这个键。如果未指定此键,则此选项接受任何值。
  • empty(布尔值,可选)-该选项是否接受空字符串。只有'string'选项可以有这个键。如果不指定该键,默认为false。

可选例子List必须包含具有以下键的字典:

  • description(字符串,必选)—示例的描述文本。
  • args(字符串列表,可选)-示例中使用的参数列表。
  • 选项(字符串字典,可选)-选项在示例中使用。

报表的类型决定了报表调用的预期结果:

  • 'list'报告返回一个值列表的列表,第一项包含列的名称,其余项包含有值的行。
  • 'report'报表返回一个包含单个项的列表。
  • 'print'报告返回一个空列表。

报表的类型还决定调用using时的输出形式\显示\看命令:

  • “列表”报告将以表格形式显示(如果使用了——vertical选项,则为垂直显示)。
  • “report”报告将以YAML格式显示。
  • “打印”报告将不会被格式化壳牌,报告本身将打印出任何输出。

已注册的报告可以调用using\显示\看任何脚本模式下的命令。注册报告也可以作为shell.reports对象。

中创建自定义报表文件摆在文件夹位于壳牌配置路径(默认是~ / .mysqlsh摆在在Unix中,MySQL % AppData % \ \ mysqlsh \摆在在Windows)。自定义报告可以用JavaScript或Python编写。应该使用每个案例的标准文件扩展名来正确加载它们。文件中注册的所有报告register_report ()方法将可用时壳牌就开始了。

create_extension_object ()

> create_extension_object . std::shared_ptr< Extensible_object

创建一个扩展对象,它可用于扩展shell功能。

扩展对象是通过在其中添加成员(属性和函数)来定义的。

扩展对象可以作为另一个扩展对象的属性添加,也可以注册为shell全局对象。

只有当扩展对象已注册为全局对象或已添加到另一个扩展对象(该扩展对象是其他已注册对象中的成员)中时,才可以使用扩展对象。

add_extension_object_member ()

没有add_extension_object_member 对象 对象
str 的名字
价值 成员
dict 定义

向扩展对象添加成员。

参数
对象 要向其添加成员的对象。
的名字 正在添加的成员的名称。
成员 正在添加的成员。
定义 带有关于成员的帮助信息的可选字典。

name参数必须是一个有效的标识符,也就是说,它应该遵循模式[_|a..z| a..z]([_|a..z| a..z| 0..9])*

成员形参可以是:

  • 一个扩展的对象
  • 一个函数
  • 标量值:boolean, integer, float, string
  • 数组
  • 字典
  • 没有/空

将扩展对象添加为成员时,将向目标扩展对象添加只读属性。

当一个函数被添加为成员时,它将可在扩展对象上调用,但不可能用新值或函数覆盖它。

当任何其他类型被添加为成员时,读/写属性将被添加到目标扩展对象中,就可以不受任何限制地更新值。

重要提示:添加到可扩展对象中的每个成员只有在对象注册时才可用,也就是说,注册为全局shell对象,或添加为已注册的另一个对象的成员。

definition形参是可选的,可用于为成员定义附加信息。

成员定义接受以下属性:

  • Brief:可选字符串,包含被添加成员的简要描述。
  • Details:可选的字符串数组,包含被添加成员的详细信息。

这些信息将集成到外壳帮助中,通过内置的帮助系统(\?)提供。

添加函数时,还允许在成员定义中添加以下属性:

  • 参数:函数接受的每个参数的参数定义列表。

形参定义是一个具有以下属性的字典:

  • Name:必选,参数的名称,必须是有效的标识符。
  • 类型:必填,参数的数据类型,允许的值包括:字符串,整数,bool, float,数组,字典,对象。
  • Required:布尔值,表示参数是必选还是可选。
  • Brief:包含参数的简短描述的字符串。
  • Details:一个字符串数组,包含关于参数的其他详细信息。

在brief和details属性上定义的信息也将被添加到内置帮助系统(\?)上的帮助函数。

如果一个形参的类型是'string',下面的属性也允许在形参定义字典中使用:

  • Values:字符串数组,只有该参数允许的值。

如果一个形参的类型是'object',下面的属性也允许在形参定义字典中使用:

  • Class:字符串,定义允许作为参数值的对象的类。
  • 类:字符串数组,定义允许作为参数值的多个对象类。

类属性的值必须是通过不同api公开的有效类。有关详细信息,使用:

  • \ ?mysql
  • \ ?mysqlx
  • \ ?adminapi
  • \ ?shellapi

要获取全局对象或注册扩展的类名,请调用print函数作为对象的参数传递。"Shell"是内置Shell全局对象的类名:

mysql-js >打印(壳)
<壳>
mysql-js >

如果一个形参的类型是'dictionary',下面的属性也允许在形参定义字典中使用:

  • 选项:选项定义字典的列表,定义了可以传递给字典参数的允许选项。

选项定义字典遵循与形参定义字典完全相同的规则,除了一点:在形参定义字典上,必须首先定义必需的形参,而选项定义字典没有这个限制。

register_global ()

UserObject register_global str 的名字
对象 对象
dict 定义

将扩展对象注册为shell全局对象。

参数
的名字 要给已注册全局对象的名称。
对象 要注册为全局对象的扩展对象。
定义 可选字典,包含关于对象的帮助信息。

使用shell创建一个扩展对象。create_extension_object函数。一旦注册,它提供的功能就可以使用了。

name参数的使用限制如下:

  • 它必须是有效的脚本标识符。
  • 它不能是内置全局对象的名称。
  • 它不能是以前注册的对象的名称。

用于注册对象的名称将完全是该对象在Python和JavaScript模式下可用的名称,也就是说,对全局对象没有强制命名约定。

definition形参是一个字典,包含关于被注册对象的帮助信息,它允许以下属性:

  • Brief:带有对象简要描述的字符串。
  • 详细信息:包含对象附加信息的字符串列表。

当对象被注册时,定义参数和对象成员上的帮助数据可以通过内置的shell帮助系统获得。(\)。

dump_rows ()

没有dump_rows ShellBaseResult 结果
str 格式

将给定的结果集对象格式化并转储到控制台。

参数
结果 要转储的结果集对象
格式 table, tabbed, vertical, json, ndjson, json/raw, json/array, json/pretty。默认是表。
返回
打印的行数

这个函数以shell支持的相同格式显示由DB Session查询返回的结果集对象。

注意,结果集将由函数使用。