MySQL Shell 插件可用于包含注册为 MySQL Shell 报告的函数(请参阅 第 10.1 节 “使用 MySQL Shell 生成报告”)以及作为用户定义的 MySQL Shell 全局对象提供的扩展对象的成员函数(请参阅 第 10.2 节 “向 MySQL Shell 添加扩展对象”)。单个插件可以包含并注册多个函数,并且可以包含报告和扩展对象成员的混合。当 MySQL 完成启动时,由 MySQL Shell 插件注册为报告或扩展对象成员的函数将立即可用。
MySQL Shell 插件是一个包含适合该语言的初始化脚本的文件夹(一个 init.js
或 init.py
文件)。初始化脚本是插件的入口点。一个插件只能包含一种语言的代码,因此,如果您要创建一个包含 Python 中定义的成员和 JavaScript 中定义的成员的扩展对象,则必须将这些成员存储为单独的语言特定的插件。
为了在启动时自动加载 MySQL Shell 插件,其文件夹必须位于 MySQL Shell 用户配置路径下的 plugins
文件夹中。MySQL Shell 会在此位置搜索任何初始化脚本。MySQL Shell 会忽略 plugins
位置中名称以点 (.) 开头的任何文件夹,但除此之外,您为插件文件夹使用的名称并不重要。
plugins
文件夹的默认路径在 Unix 上为 ~/.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 插件时,以下对象可作为全局变量使用
内置全局对象
shell
、dba
和util
。Shell API 主模块
mysql
。X DevAPI 主模块
mysqlx
。AdminAPI 主模块
dba
。