MySQL 外壳 8.0  / 第 10 章扩展 MySQL Shell  / 10.3 MySQL Shell 插件  /  10.3.1 创建 MySQL Shell 插件

10.3.1 创建 MySQL Shell 插件

MySQL Shell 插件可用于包含注册为 MySQL Shell 报告的函数(请参阅 第 10.1 节,“使用 MySQL Shell 报告”),以及作为扩展对象成员的函数,这些扩展对象可由用户定义的 MySQL Shell 全局对象(参见 第 10.2 节,“将扩展对象添加到 MySQL Shell”)。单个插件可以包含和注册多个函数,并且可以包含报告和扩展对象成员的混合。当 MySQL 完成启动时,由 MySQL Shell 插件注册为报告或扩展对象成员的函数将立即可用。

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

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

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

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

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

  • 内置全局对象shelldbautil

  • Shell API 主模块mysql

  • X DevAPI 主模块mysqlx

  • AdminAPI 主模块dba