在 MySQL Shell 中,與 MySQL 伺服器執行個體的連線是由工作階段物件處理。以下類型的工作階段物件可用
Session
:針對新的應用程式開發使用此工作階段物件類型,以與提供 X Protocol 的 MySQL 伺服器執行個體通訊。X Protocol 提供與 MySQL 伺服器最佳的整合。若要使用 X Protocol,X Plugin 必須安裝在 MySQL 伺服器執行個體上並啟用,在 MySQL 8.0 或更新版本中,預設為啟用。X Plugin 會監聽mysqlx_port
指定的連接埠,預設值為 33060,因此在使用Session
的連線中指定此連接埠。ClassicSession
:使用此工作階段物件類型與不提供 X Protocol 的 MySQL 伺服器執行個體互動。此物件適用於針對使用傳統 MySQL 通訊協定的伺服器執行 SQL。適用於這類工作階段的開發 API 非常有限。例如,沒有 X DevAPI CRUD 作業、沒有集合處理,且不支援繫結。為了開發,盡可能優先選擇Session
物件。
ClassicSession
是 MySQL Shell 特有的,且無法與其他 X DevAPI 實作 (例如 MySQL 連接器) 搭配使用。
當您第一次連線到 MySQL 伺服器執行個體時 (可以在啟動 MySQL Shell 時或之後進行),會建立名為 session
的 MySQL Shell 全域物件來代表此連線。這個特定的工作階段物件是全域的,因為一旦建立,就可以在所有 MySQL Shell 執行模式中使用:SQL 模式、JavaScript 模式和 Python 模式。因此,它所代表的連線稱為全域工作階段。變數 session
保留此工作階段物件的參考,並且可以在 JavaScript 模式和 Python 模式中的 MySQL Shell 中使用,以使用連線。
根據您在連線到 MySQL 伺服器執行個體時選擇的通訊協定,session
全域物件可以是 Session
類型的工作階段物件,或 ClassicSession
類型的工作階段物件。您可以使用命令選項選擇通訊協定,或將其指定為您提供的連線資料的一部分。若要查看目前全域工作階段的相關資訊,請發出
mysql-js []> session
<ClassicSession:user@example.com:3330>
當全域工作階段連線時,這會顯示工作階段物件類型以及全域工作階段連線的 MySQL 伺服器執行個體的位址。
如果您在連線時明確選擇通訊協定或隱含地指出它,MySQL Shell 會嘗試使用該通訊協定建立連線,如果失敗則會傳回錯誤。如果您的連線參數未指出通訊協定,MySQL Shell 會先嘗試使用 X Protocol (傳回 Session
類型的工作階段物件) 建立連線,如果失敗,則會嘗試使用傳統 MySQL 通訊協定建立連線 (傳回 ClassicSession
類型的工作階段物件)。
若要驗證連線嘗試的結果,請使用 MySQL Shell 的 \status
命令或 shell.status()
方法。這些會顯示連線通訊協定和關於 session
全域物件所代表之連線的其他資訊,如果 session
全域物件未連線至 MySQL 伺服器,則會傳回 「未連線」。例如
mysql-js []> shell.status()
MySQL Shell version 8.1.0-commercial
Connection Id: 9
Current schema:
Current user: root@localhost
SSL: Cipher in use: TLS_AES_256_GCM_SHA384 TLSv1.3
Using delimiter: ;
Server version: 8.1.0-commercial MySQL Enterprise Server - Commercial
Protocol version: Classic 10
Client library: 8.1.0
Connection: localhost via TCP/IP
TCP port: 3306
Server characterset: utf8mb4
Schema characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
Result characterset: utf8mb4
Compression: Disabled
Uptime: 9 hours 42 min 5.0000 sec
Threads: 2 Questions: 61 Slow queries: 0 Opens: 176 Flush tables: 3 Open tables: 95 Queries per second avg: 0.001
本節著重於說明代表連線到 MySQL 伺服器執行個體的工作階段物件,以及 session
全域物件。如需有關本節中提及的每種連線到 MySQL 伺服器執行個體方式的完整指示和範例,以及適用於連線的其他選項,請參閱第 4.3 節,「MySQL Shell 連線」。