MySQL Shell 9.0  /  自訂 MySQL Shell  /  使用啟動腳本

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 的啟動腳本,以及符合正在初始化的指令碼模式的副檔名(如果 MySQL Shell 在未指定任何語言模式的情況下啟動,則預設為 .js)。請注意,MySQL Shell 會依找到的順序,執行所有為指令碼模式找到的適當啟動腳本。如果兩個不同的啟動腳本中定義了相同的東西,則稍後執行的腳本優先。

  1. 在平台的標準全域組態路徑中。

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

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

  2. 在 MySQL Shell 主資料夾的 share/mysqlsh 子目錄中,該子目錄可以由環境變數 MYSQLSH_HOME 定義,或由 MySQL Shell 識別。如果未定義 MYSQLSH_HOME,MySQL Shell 會將其自己的主資料夾識別為包含 mysqlsh 二進位檔的 bin 資料夾的父資料夾(如果存在此類資料夾)。(對於許多標準安裝,因此不需要定義 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 二進位檔路徑>\mysqlshrc.[js|py]

    • 在 Unix 上:<mysqlsh 二進位檔路徑>/mysqlshrc.[js|py]

  4. 在由環境變數 MYSQLSH_USER_CONFIG_HOME 定義的 MySQL Shell 使用者組態路徑中。

    • 在 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]