MySQL Shell 9.0  /  ...  /  管理沙箱實例

6.8.2 管理沙箱實例

一旦沙箱實例正在執行,即可隨時使用下列命令變更其狀態。指定實例的連接埠號碼以識別它。

  • 若要使用 JavaScript 停止沙箱實例,請發出 dba.stopSandboxInstance(instance)。這會正常停止實例,與 dba.killSandboxInstance(instance) 不同。

  • 若要使用 Python 停止沙箱實例,請發出: dba.stop_sandbox_instance(instance)。這會正常停止實例,與 dba.kill_sandbox_instance(instance) 不同。

  • 若要使用 JavaScript 啟動沙箱實例,請發出: dba.startSandboxInstance(instance)

  • 若要使用 Python 啟動沙箱實例,請發出: dba.start_sandbox_instance(instance)

  • 若要使用 JavaScript 強制停止沙箱實例,請發出: dba.killSandboxInstance(instance)。這會停止實例而不會正常停止它,且適用於模擬意外停止的情況。

  • 若要使用 Python 強制停止沙箱實例,請發出: dba.kill_sandbox_instance(instance)。這會停止實例而不會正常停止它,且適用於模擬意外停止的情況。

  • 若要使用 JavaScript 刪除沙箱實例,請發出: dba.deleteSandboxInstance(instance)。這會從您的檔案系統中完全移除沙箱實例。

  • 若要使用 Python 刪除沙箱實例,請發出: dba.delete_SandboxInstance(instance)。這會從您的檔案系統中完全移除沙箱實例。

沙箱實例被視為暫時性的,且並非設計用於生產環境。因此,不支援版本升級。在沙箱部署中,每個沙箱實例都會使用在本地 mysql-sandboxes 目錄中的 $PATH 中找到的 mysqld 二進位檔複本。如果 mysqld 的版本變更,例如在升級後,基於先前版本的沙箱將無法啟動。這是因為與在 basedir 底下找到的相依性相比,沙箱二進位檔已過時。

如果您想要在升級後保留沙箱實例,一種解決方法是手動將升級後的 mysqld 二進位檔複製到每個沙箱的 bin 目錄中。然後發出 dba.startSandboxInstance() 來啟動沙箱。此作業會因逾時而失敗,且錯誤記錄包含

2020-03-26T11:43:12.969131Z 5 [System] [MY-013381] [Server] Server upgrade
from '80019' to '80020' started.
2020-03-26T11:44:03.543082Z 5 [System] [MY-013381] [Server] Server upgrade
from '80019' to '80020' completed.

雖然此作業看起來像是因逾時而失敗,但沙箱已成功啟動。