MySQL Shell 9.0  /  ...  /  创建 MySQL Shell 插件

10.3.1 创建 MySQL Shell 插件

MySQL Shell 插件可用于包含注册为 MySQL Shell 报告的函数(请参阅 第 10.1 节 “使用 MySQL Shell 进行报告”)和作为用户定义的 MySQL Shell 全局对象提供的扩展对象成员的函数(请参阅 第 10.2 节 “向 MySQL Shell 添加扩展对象”)。单个插件可以包含和注册多个函数,并且可以包含报告和扩展对象成员的混合。MySQL Shell 插件注册为报告或扩展对象成员的函数在 MySQL 完成启动后立即可用。

MySQL Shell 插件是一个包含适用于该语言的初始化脚本的文件夹(init.jsinit.py 文件)。初始化脚本是插件的入口点。插件只能包含一种语言的代码,因此,如果要创建一个包含 Python 定义的成员和 JavaScript 定义的成员的扩展对象,则必须将这些成员存储为单独的语言专用插件。

为了使 MySQL Shell 插件在启动时自动加载,其文件夹必须位于 MySQL Shell 用户配置路径中的 plugins 文件夹下。MySQL Shell 会在此位置搜索任何初始化脚本。MySQL Shell 会忽略 plugins 位置中名称以点 (.) 开头的所有文件夹,但除此之外,您为插件文件夹使用的名称并不重要。

在 Unix 上,plugins 文件夹的默认路径为 ~/.mysqlsh/plugins,在 Windows 上,默认路径为 %AppData%\MySQL\mysqlsh\plugins。可以通过定义环境变量 MYSQLSH_USER_CONFIG_HOME 来覆盖所有平台上的用户配置路径。此变量的值将替换 Windows 上的 %AppData%\MySQL\mysqlsh\ 或 Unix 上的 ~/.mysqlsh/

加载插件时,如果发现错误,则会显示警告,并且错误详细信息将在 MySQL Shell 应用程序日志中提供。要查看有关加载过程的更多详细信息,请在启动 MySQL Shell 时使用 --log-level=debug 选项。

加载 MySQL Shell 插件时,以下对象作为全局变量可用

  • 内置全局对象 shelldbautil

  • Shell API 主模块 mysql

  • X DevAPI 主模块 mysqlx

  • AdminAPI 主模块 dba