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