当 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
且文件扩展名与要初始化的脚本模式匹配的启动脚本(如果 MySQL Shell 在启动时未指定语言模式,则默认为 .js
)。请注意,MySQL Shell 会按照找到的顺序执行为脚本模式找到的所有合适的启动脚本。如果在两个不同的启动脚本中定义了相同的内容,则稍后执行的脚本优先。
-
在平台的标准全局配置路径中。
在 Windows 上:
%PROGRAMDATA%\MySQL\mysqlsh\mysqlshrc.[js|py]
在 Unix 上:
/etc/mysql/mysqlsh/mysqlshrc.[js|py]
-
在 MySQL Shell 主文件夹的
share/mysqlsh
子目录中,该目录可以通过环境变量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]
-
在包含 mysqlsh 二进制文件的文件夹中,但前提是在选项 2 中描述的 MySQL Shell 主文件夹既未指定也未由 MySQL Shell 在预期的标准位置识别。
在 Windows 上:
<mysqlsh 二进制文件路径>\mysqlshrc.[js|py]
在 Unix 上:
<mysqlsh 二进制文件路径>/mysqlshrc.[js|py]
-
在 MySQL Shell 用户配置路径中,由环境变量
MYSQLSH_USER_CONFIG_HOME
定义。在 Windows 上:
%MYSQLSH_USER_CONFIG_HOME%\mysqlshrc.[js|py]
在 Unix 上:
$MYSQLSH_USER_CONFIG_HOME/mysqlshrc.[js|py]
-
在平台的标准用户配置路径中,但前提是未指定选项 4 中描述的 MySQL Shell 用户配置路径。
在 Windows 上:
%APPDATA%\MySQL\mysqlsh\mysqlshrc.[js|py]
在 Unix 上:
$HOME/.mysqlsh/mysqlshrc.[js|py]