MySQL Shell 9.0  /  ...  /  在启动 MySQL Shell 后创建会话全局对象

4.2.2 在启动 MySQL Shell 后创建 Session 全局对象

如果您在未连接到 MySQL 服务器实例的情况下启动了 MySQL Shell,可以使用 MySQL Shell 的 \connect 命令或 shell.connect() 方法来启动连接并创建 session 全局对象。或者,shell.getSession() 方法将返回 session 全局对象。

MySQL Shell 的 \connect 命令与 URI 样式连接字符串一起使用,如上所述,以及在 使用 URI 样式字符串或键值对连接到服务器 中所述。您可以在 URI 样式连接字符串的开头包含 scheme 元素以选择要创建的会话对象类型,例如

mysql-js> \connect mysqlx://user@localhost:33060

或者,您可以省略 scheme 元素并使用命令的 --mysqlx (--mx) 选项使用 X 协议创建 Session 对象,或者使用 --mysql (--mc) 使用经典 MySQL 协议创建 ClassicSession 对象。例如

mysql-js> \connect --mysqlx user@localhost:33060

shell.connect() 方法可以在 MySQL Shell 中用作 \connect 命令的替代方法来创建 session 全局对象。这种连接方法可以使用 URI 样式连接字符串,其中所选协议指定为 scheme 元素。例如

mysql-js> shell.connect('mysqlx://user@localhost:33060')

使用 shell.connect() 方法,您还可以使用键值对指定连接参数,这些参数作为 JavaScript 中的 JSON 对象或 Python 中的字典提供。所选协议 (mysqlxmysql) 指定为 scheme 键的值。例如

mysql-js> shell.connect( {scheme:'mysqlx', user:'user', host:'localhost', port:33060} )

有关以这些方式连接到 MySQL 服务器实例的说明和示例,请参见 使用 URI 样式字符串或键值对连接到服务器

您可以省略连接协议,并让 MySQL Shell 根据您的其他连接参数(例如为协议指定默认端口)自动检测连接协议。要验证用于连接的协议,请使用 MySQL Shell 的 \status 命令或 shell.status() 方法。

如果您使用 \connect 命令或 shell.connect() 方法在 session 全局对象已存在(在启动时或之后创建)的情况下创建新的连接,MySQL Shell 将关闭由 session 全局对象表示的现有连接。即使您将 shell.connect() 方法创建的新会话对象分配给不同的变量,情况也是如此。 session 全局对象的值(由 session 变量引用)仍会使用新的连接详细信息更新。如果您想使用多个并发连接,请使用 第 4.2.3 节“在 JavaScript 和 Python 模式下编写会话脚本” 中描述的备用函数来创建这些连接。