MySQL Shell 8.0  /  MySQL Shell スタートガイド  /  MySQL Shell 接続

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

4.3 MySQL Shell 接続

MySQL Shell は、X プロトコル と クラシック MySQL プロトコル の両方を使用して MySQL Server に接続できます。 MySQL Shell がグローバルに接続する MySQL サーバーインスタンスは、次の方法で指定できます:

MySQL サーバーインスタンスに接続するこれらの方法では、すべての MySQL Shell 実行モードで使用できる接続であるグローバルセッションが作成されます: SQL モード、JavaScript モードおよび Python モード。 session という名前の MySQL Shell グローバルオブジェクトはこの接続を表し、変数 session はその接続への参照を保持します。 shell.openSession(), mysqlx.getSession(), mysql.getSession() または mysql.getClassicSession() 関数を使用して、MySQL サーバーインスタンスへの他の接続を表す複数の追加セッションオブジェクトを作成することもできます。 これらの接続は、作成したモードで使用でき、一度にいずれかの接続を MySQL Shell グローバルセッションとして割り当てて、すべてのモードで使用できます。 セッションオブジェクトの説明、グローバルセッションの操作方法、および MySQL Shell インスタンスから複数の接続を作成および管理する方法については、セクション4.2「MySQL Shell セッション」 を参照してください。

MySQL サーバーインスタンスに接続するこれらの様々な方法はすべて、次のように接続を指定することをサポートします:

  • URI のような文字列で指定されたパラメータは、myuser@example.com:3306/main-schema などの構文を使用します。 完全な構文については、URI 類似の接続文字列を使用した接続 を参照してください。

  • キーと値のペアで指定されたパラメータは、{user:'myuser', host:'example.com', port:3306, schema:'main-schema'} などの構文を使用します。 これらのキーと値のペアは、実装用の言語自然構造で提供されます。 たとえば、キーと値のペアを JavaScript の JSON オブジェクトとして、または Python のディクショナリとして使用して、接続パラメータを指定できます。 完全な構文については、キーと値のペアを使用した接続 を参照してください。

詳しくはURI 類似文字列またはキーと値のペアを使用したサーバーへの接続をご覧ください。

重要

接続の選択方法に関係なく、パスワードが MySQL Shell によってどのように処理されるかを理解することが重要です。 デフォルトでは、接続にはパスワードが必要とみなされます。 パスワード (最大 128 文字) はログインプロンプトで要求され、セクション4.4「プラガブルパスワードストア」 を使用して格納できます。 指定したユーザーにパスワードなしのアカウントがある場合 (セキュアではなく推奨されません)、またはソケットピア資格証明認証が使用されている場合 (たとえば、Unix ソケット接続を使用している場合)、パスワードが指定されず、パスワードプロンプトが不要であることを明示的に指定する必要があります。 これを行うには、次のいずれかの方法を使用します:

  • URI のような接続文字列を使用して接続している場合は、文字列の user の後に:を配置しますが、その後にパスワードを指定しないでください。

  • キーと値のペアを使用して接続する場合は、password キーの後に''を使用して空の文字列を指定します。

  • 個々のパラメータを使用して接続する場合は、--no-password オプションを指定するか、空の値で --password= オプションを指定します。

接続のパラメータを指定しない場合は、次のデフォルトが使用されます:

  • user のデフォルトは、現在のシステムユーザー名です。

  • host のデフォルトは localhost です。

  • port のデフォルトは、X プロトコル 接続を使用する場合は X プラグイン ポート 33060、クラシック MySQL プロトコル 接続を使用する場合はポート 3306 です。

接続タイムアウトを構成するには、connect-timeout 接続パラメータを使用します。 connect-timeout の値は、ミリ秒単位の時間枠を定義する負でない整数である必要があります。 タイムアウトのデフォルト値は 10000 ミリ秒 (10 秒) です。 例:

// Decrease the timeout to 2 seconds.
mysql-js> \connect user@example.com?connect-timeout=2000
// Increase the timeout to 20 seconds
mysql-js> \connect user@example.com?connect-timeout=20000

タイムアウトを無効にするには、connect-timeout の値を 0 に設定します。これは、基礎となるソケットがタイムアウトするまでクライアントが待機することを意味します (プラットフォームによって異なります)。

TCP 接続のかわりに、Unix ソケットファイルまたは Windows 名前付きパイプを使用して接続できます。 その手順は、セクション4.3.2「Unix ソケットおよび Windows Named Pipes を使用した接続」を参照してください。

MySQL サーバーインスタンスで暗号化された接続がサポートされている場合は、暗号化を使用するように接続を有効化および構成できます。 その手順は、セクション4.3.3「暗号化された接続の使用」を参照してください。

また、MySQL Shell と MySQL サーバーインスタンスの間で送信されるすべてのデータに対して、接続で圧縮を使用するようにリクエストすることもできます。 その手順は、セクション4.3.4「圧縮接続の使用」を参照してください。

サーバーへの接続が失われた場合は、\reconnect コマンドを使用できます。これにより、MySQL Shell は、既存の接続パラメータを使用して、現在のグローバルセッションに対して複数の再接続を試行します。 \reconnect コマンドは、パラメータまたはオプションなしで指定されます。 これらの試行が失敗した場合は、\connect コマンドを使用して接続パラメータを指定することで、新しい接続を作成できます。