MySQL 外壳 8.0  / 第 13 章自定义 MySQL Shell  /  13.1 使用启动脚本

13.1 使用启动脚本

当 MySQL Shell 以 JavaScript 或 Python 模式启动时,以及当您第一次切换到 JavaScript 或 Python 模式时,MySQL Shell 会搜索要执行的启动脚本。启动脚本是 JavaScript 或 Python 特定脚本,包含当 MySQL Shell 首次进入相应语言模式时要执行的指令。启动脚本让您可以通过以下任何方式自定义 JavaScript 或 Python 代码执行环境:

  • 为 Python 或 JavaScript 模块添加额外的搜索路径。

  • 定义全局函数或变量。

  • 通过 JavaScript 或 Python 执行任何其他可能的初始化。

当您以 JavaScript 或 Python 模式启动或重新启动 MySQL Shell 时,以及在 MySQL Shell 运行时第一次更改为另一种模式时,将加载相关的启动脚本。此后,MySQL Shell 不再搜索启动脚本,因此如果您已经进入相关模式,则更新启动脚本需要重新启动 MySQL Shell。当 MySQL Shell 以 SQL 模式启动或您切换到该模式时,不会加载任何启动脚本。

启动脚本是可选的,如果您想使用它们进行自定义,您可以创建它们。启动脚本必须按如下方式命名:

  • 对于 JavaScript 模式:mysqlshrc.js

  • 对于 Python 模式:mysqlshrc.py

您可以将启动脚本放在下面列出的任何位置。MySQL Shell 按规定的顺序搜索所有规定的路径,以查找文件名 mysqlshrc和文件扩展名与正在初始化的脚本模式匹配的启动脚本(.js默认情况下,如果 MySQL Shell 在未指定语言模式的情况下启动)。请注意,MySQL Shell 按照找到的顺序执行为脚本模式找到的所有适当的启动脚本。如果在两个不同的启动脚本中定义了某些内容,则稍后执行的脚本优先。

  1. 在平台的标准全局配置路径中。

    • 在 Windows 上: %PROGRAMDATA%\MySQL\mysqlsh\mysqlshrc.[js|py]

    • 在 Unix 上: /etc/mysql/mysqlsh/mysqlshrc.[js|py]

  2. share/mysqlshMySQL Shell 主文件夹的子目录中,可以由环境变量定义,也可以MYSQLSH_HOME由 MySQL Shell 识别。如果MYSQLSH_HOME 未定义,则 MySQL Shell 将其自己的主文件夹标识为bin 包含mysqlsh二进制文件的命名文件夹的父文件夹(如果存在这样的文件夹)。(对于许多标准安装,因此没有必要定义 MYSQLSH_HOME.)

    • 在 Windows 上: %MYSQLSH_HOME%\share\mysqlsh\mysqlshrc.[js|py]

    • 在 Unix 上: $MYSQLSH_HOME/share/mysqlsh/mysqlshrc.[js|py]

  3. 在包含 mysqlsh 二进制文件的文件夹中,但前提是选项 2 中描述的 MySQL Shell 主文件夹既未在预期的标准位置指定也未被 MySQL Shell 识别。

    • 在 Windows 上:<mysqlsh binary path>\mysqlshrc.[js|py]

    • 在 Unix 上:<mysqlsh binary path>/mysqlshrc.[js|py]

  4. 在 MySQL Shell 用户配置路径中,由环境变量定义 MYSQLSH_USER_CONFIG_HOME

    • 在 Windows 上: %MYSQLSH_USER_CONFIG_HOME%\mysqlshrc.[js|py]

    • 在 Unix 上: $MYSQLSH_USER_CONFIG_HOME/mysqlshrc.[js|py]

  5. 在平台的标准用户配置路径中,但前提是未指定选项 4 中描述的 MySQL Shell 用户配置路径。

    • 在 Windows 上: %APPDATA%\MySQL\mysqlsh\mysqlshrc.[js|py]

    • 在 Unix 上: $HOME/.mysqlsh/mysqlshrc.[js|py]