沙箱实例运行后,可以使用以下命令随时更改其状态。指定实例的端口号以标识它
要使用 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.
尽管该操作似乎因超时而失败,但沙箱已成功启动。