MySQL Shell 8.0  /  ...  /  Unix ソケットおよび Windows Named Pipes を使用した接続

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

4.3.2 Unix ソケットおよび Windows Named Pipes を使用した接続

Unix では、次の条件が満たされた場合、MySQL Shell 接続はデフォルトで Unix ソケットを使用します:

  • TCP ポートが指定されていません。

  • ホスト名が指定されていないか、localhost と同じです。

  • ソケットファイルへのパスの有無にかかわらず、--socket または -S オプションが指定されています。

値なしで等号なしで --socket を指定した場合、または値なしで -S を指定した場合、プロトコルのデフォルトの Unix ソケットファイルが使用されます。 代替 Unix ソケットファイルへのパスを指定すると、そのソケットファイルが使用されます。

ホスト名が指定されているが、localhost ではない場合は、かわりに TCP 接続が確立されます。 この場合、TCP ポートが指定されていないと、デフォルト値 3306 が使用されます。

Windows では、クラシック MySQL プロトコル を使用する MySQL Shell 接続の場合、ホスト名をピリオド () として指定した場合。)、MySQL Shell は名前付きパイプを使用して接続します。

  • URI のような接続文字列を使用して接続する場合は、user@. を指定

  • キーと値のペアを使用して接続する場合は、{"host": "."} を指定

  • 個々のパラメータを使用して接続する場合は、--host=. または -h . を指定

デフォルトでは、パイプ名 MySQL が使用されます。 代替の名前付きパイプは、--socket オプションを使用するか、URI のような接続文字列の一部として指定できます。

URI のような文字列では、パーセントエンコーディングを使用するか、パスをカッコで囲んで、Unix ソケットファイルまたは Windows 名前付きパイプへのパスをエンコードする必要があります。 カッコを使用すると、/ディレクトリセパレータ文字などの文字をパーセントエンコードする必要がなくなります。 Unix ソケットファイルへのパスがクエリー文字列の一部として URI のような文字列に含まれている場合、先頭のスラッシュはパーセントエンコードする必要がありますが、ホスト名を置き換える場合、次の例に示すように先頭のスラッシュはパーセントエンコードしないでください:

mysql-js> \connect user@localhost?socket=%2Ftmp%2Fmysql.sock
mysql-js> \connect user@localhost?socket=(/tmp/mysql.sock)
mysql-js> \connect user@/tmp%2Fmysql.sock 
mysql-js> \connect user@(/tmp/mysql.sock)

Windows の場合のみ、次の例に示すように、名前付きパイプの先頭に文字\\.\を付加し、パーセントエンコーディングを使用してエンコードするか、カッコで囲む必要があります:

(\\.\named:pipe)
\\.\named%3Apipe
重要

Windows では、名前付きパイプを使用して 1 つ以上の MySQL Shell セッションが MySQL Server インスタンスに接続されていて、サーバーを停止する必要がある場合、まず MySQL Shell セッションを閉じる必要があります。 この方法でまだ接続されているセッションでは、シャットダウン手順中にサーバーがハングアップする可能性があります。 これが発生した場合は、MySQL Shell を終了すると、サーバーは停止手順を続行します。

Unix ソケットファイルおよび Windows 名前付きパイプとの接続の詳細は、コマンドオプションを使用した MySQL Server への接続 および URI 類似文字列またはキーと値のペアを使用したサーバーへの接続 を参照してください。