MySQL Shell 8.0  /  MySQL Shell スタートガイド  /  MySQL Shell セッション

このページは機械翻訳したものです。

4.2 MySQL Shell セッション

MySQL Shell では、MySQL Server インスタンスへの接続はセッションオブジェクトによって処理されます。 次のタイプのセッションオブジェクトを使用できます:

  • Session : このセッションオブジェクトタイプは、新しいアプリケーション開発で X プロトコル が使用可能な MySQL Server インスタンスと通信するために使用します。X プロトコル は、MySQL Server との最適な統合を提供します。 X プロトコル を使用できるようにするには、MySQL Server インスタンスに X プラグイン をインストールして有効にする必要があります。これは、MySQL 8.0 のデフォルトです。 MySQL 5.7 では、X プラグイン を手動でインストールする必要があります。 詳細は、X プラグイン を参照してください。X プラグイン は、mysqlx_port によって指定されたポート (デフォルトは 33060) をリスニングするため、Session を使用した接続でこのポートを指定します。

  • ClassicSession : このセッションオブジェクトタイプを使用して、X プロトコル が使用できない MySQL Server インスタンスと対話します。 このオブジェクトは、クラシック MySQL プロトコル を使用してサーバーに対して SQL を実行するためのものです。 この種のセッションで使用可能な開発 API は非常に制限されています。 たとえば、X DevAPI CRUD 操作、コレクション処理およびバインディングはサポートされていません。 開発の場合は、可能なかぎり Session オブジェクトを優先します。

重要

ClassicSession は MySQL Shell に固有であり、MySQL コネクタなどの X DevAPI の他の実装では使用できません。

MySQL Shell の起動時またはその後に実行できる MySQL Server インスタンスへの最初の接続を行うと、この接続を表す session という名前の MySQL Shell グローバルオブジェクトが作成されます。 この特定のセッションオブジェクトは、一度作成されるとすべての MySQL Shell 実行モードで使用できるため、グローバルです: SQL モード、JavaScript モードおよび Python モード。 したがって、それが表す接続はグローバルセッションと呼ばれます。 変数 session は、このセッションオブジェクトへの参照を保持し、JavaScript モードおよび Python モードの MySQL Shell で使用して接続を操作できます。

session グローバルオブジェクトは、MySQL Server インスタンスへの接続時に選択したプロトコルに従って、Session タイプのセッションオブジェクトまたは ClassicSession タイプのセッションオブジェクトのいずれかになります。 コマンドオプションを使用してプロトコルを選択するか、指定した接続データの一部としてセッションオブジェクトタイプを指定できます。 現在のグローバルセッションに関する情報を表示するには、次のコマンドを発行します:

mysql-js []> session

<ClassicSession:user@example.com:3330>

グローバルセッションが接続されると、セッションオブジェクトタイプおよびグローバルセッションが接続されている MySQL Server インスタンスのアドレスが表示されます。

プロトコルを明示的に選択するか、接続時に暗黙的に指定すると、MySQL Shell はそのプロトコルを使用して接続を作成しようとし、失敗した場合はエラーを返します。 接続パラメータにプロトコルが指定されていない場合、MySQL Shell はまず X プロトコル を使用して接続を試行し (Session タイプのセッションオブジェクトを戻します)、失敗した場合は クラシック MySQL プロトコル を使用して接続を試行します (ClassicSession タイプのセッションオブジェクトを戻します)。

接続試行の結果を確認するには、MySQL Shell\status コマンドまたは shell.status() メソッドを使用します。 これらは、session グローバルオブジェクトによって表される接続に関する接続プロトコルおよびその他の情報を表示します。または、session グローバルオブジェクトが MySQL サーバーに接続されていない場合は、「未接続」を返します。 例:

mysql-js []> shell.status()
MySQL Shell version 8.0.18

Session type:                 X Protocol
Connection Id:                198
Current schema:               
Current user:                 user@example.com
SSL:                          Cipher in use: TLS_AES_256_GCM_SHA384 TLSv1.3
Using delimiter:              ;
Server version:               8.0.18 MySQL Community Server - GPL
Protocol version:             X Protocol
Client library:               8.0.18
Connection:                   TCP/IP
TCP port:                     33060
Server characterset:          utf8mb4
Schema characterset:          utf8mb4
Client characterset:          utf8mb4
Conn. characterset:           utf8mb4
Compression:                  Enabled (zstd)
Uptime:                       31 min 42.0000 sec

Threads: 8  Questions: 2622  Slow queries: 0  Opens: 298  Flush tables: 3  Open tables: 217  Queries per second avg: 1.378

このセクションでは、MySQL Server インスタンスへの接続を表すセッションオブジェクトおよび session グローバルオブジェクトについて説明します。 MySQL Server インスタンスに接続するためのこのセクションで説明する各方法の完全な手順と例、および接続に使用できるその他のオプションについては、セクション4.3「MySQL Shell 接続」 を参照してください。