如果您在未连接到 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 中的字典提供。所选协议 (mysqlx
或 mysql
) 指定为 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 模式下编写会话脚本” 中描述的备用函数来创建这些连接。