MySQL Shell 8.4  /  ...  /  在启动 MySQL Shell 后创建 Session 全局对象

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

如果启动 MySQL Shell 时没有连接到 MySQL Server 实例,可以使用 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 Server 实例的说明和示例,请参阅 使用 URI 类型的字符串或键值对连接到服务器

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

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