When MySQL Shell enters either into JavaScript or Python mode, it searches for startup scripts to be executed. The startup scripts are JavaScript or Python specific scripts containing the instructions to be executed when the corresponding mode is initialized.
Startup scripts must be named as follows:
For JavaScript mode:
mysqlshrc.js
For Python mode:
mysqlshrc.py
MySQL Shell searches the following paths for these files (in order of execution).
On Windows:
%PROGRAMDATA%\MySQL\mysqlsh\mysqlshrc.[js|py]
%MYSQLSH_HOME%\shared\mysqlsh\mysqlshrc.[js|py]
<mysqlsh binary path>\mysqlshrc.[js|py]
%APPDATA%\MySQL\mysqlsh\mysqlshrc.[js|py]
On Linux and OSX:
/etc/mysql/mysqlsh/mysqlshrc.[js|py]
$MYSQLSH_HOME/shared/mysqlsh/mysqlshrc.[js|py]
<mysqlsh binary path>/mysqlshrc.[js|py]
$HOME/.mysqlsh/mysqlshrc.[js|py]
The lists above also define the order of searching the paths, so if something is defined in two different scripts, the script executed later takes precedence.
The environment variable MYSQLSH_HOME
, used in
option 2, defines the root folder of a standard setup of
MySQL Shell. If MYSQLSH_HOME
is not defined
it is automatically calculated based on the location of the
MySQL Shell binary, therefore on many standard setups it is not
required to define MYSQLSH_HOME
.
If MYSQLSH_HOME
is not defined and the
MySQL Shell binary is not in a standard install folder
structure, then the path defined in option 3 in the above lists is
used. If using a standard install or if
MYSQLSH_HOME
points to a standard install
folder structure, then the path defined in option 3 is not used.
The user configuration path in option 4 can be overridden on all
platforms by defining the environment variable
MYSQLSH_USER_CONFIG_HOME
. The value of this
variable replaces %AppData%\MySQL\mysqlsh\
on
Windows or ~/.mysqlsh/
on Unix.