MySQL クライアントライブラリを使用するプログラム (mysql や mysqldump など) の場合、MySQL は複数のトランスポートプロトコルに基づいたサーバーへの接続をサポート: TCP/IP、Unix ソケットファイル、名前付きパイプおよび共有メモリー。 このセクションでは、これらのプロトコルを選択する方法と、それらがどのように類似していて異なるかについて説明します。
特定の接続では、トランスポートプロトコルが明示的に指定されていない場合、暗黙的に決定されます。 たとえば、localhost
に接続すると、Unix および Unix に似たシステムでソケットファイル接続が行われ、それ以外の場合は 127.0.0.1
への TCP/IP 接続が行われます。 追加情報については セクション4.2.4「コマンドオプションを使用した MySQL Server への接続」を参照してください。
プロトコルを明示的に指定するには、--protocol
コマンドオプションを使用します。 次のテーブルに、--protocol
に許可される値を示し、各値に適用可能なプラットフォームを示します。 値では大文字と小文字は区別されません。
--protocol の値 |
使用されるトランスポートプロトコル | 適用可能なプラットフォーム |
---|---|---|
TCP |
TCP/IP | すべて |
SOCKET |
Unix ソケットファイル | Unix および Unix に似たシステム |
PIPE |
名前付きパイプ | Windows |
MEMORY |
共有メモリー | Windows |
TCP/IP トランスポートでは、ローカルまたはリモートの MySQL サーバーへの接続がサポートされます。
ソケットファイル、名前付きパイプおよび共有メモリートランスポートでは、ローカル MySQL サーバーへの接続のみがサポートされます。 (名前付きパイプトランスポートではリモート接続は可能ですが、この機能は MySQL に実装されていません。)
トランスポートプロトコルを明示的に指定しない場合、localhost
は次のように解釈されます:
Unix および Unix に似たシステムでは、
localhost
に接続するとソケットファイル接続が行われます。それ以外の場合、
localhost
に接続すると、127.0.0.1
への TCP/IP 接続になります。
トランスポートプロトコルが明示的に指定されている場合、localhost
はそのプロトコルに関して解釈されます。 たとえば、--protocol=TCP
では、localhost
に接続すると、すべてのプラットフォームの 127.0.0.1
に TCP/IP 接続されます。
TCP/IP およびソケットファイルトランスポートは、暗号化接続のコマンドオプション で説明されているオプションを使用して TLS/SSL 暗号化の対象となります。 名前付きパイプおよび共有メモリートランスポートは TLS/SSL 暗号化の対象になりません。
デフォルトで保護されているトランスポートプロトコルを介して行われた場合、接続はデフォルトで保護されます。 それ以外の場合、TLS/SSL 暗号化の対象となるプロトコルでは、暗号化を使用して接続をセキュアにすることができます:
TCP/IP 接続はデフォルトではセキュアではありませんが、セキュアにするために暗号化できます。
ソケットファイル接続はデフォルトでセキュアです。 暗号化することもできますが、ソケットファイル接続を暗号化するとセキュアでなくなり、CPU 負荷が増加します。
名前付きパイプ接続はデフォルトではセキュアではなく、セキュアにするために暗号化の対象にはなりません。 ただし、
named_pipe_full_access_group
システム変数を使用して、名前付きパイプ接続の使用を許可する MySQL ユーザーを制御できます。共有メモリー接続はデフォルトでセキュアです。
require_secure_transport
システム変数が有効になっている場合、サーバーは何らかの形式のセキュアなトランスポートを使用する接続のみを許可します。 前述の備考に従って、TLS/SSL を使用して暗号化された TCP/IP を使用する接続、ソケットファイルまたは共有メモリーはセキュアな接続です。 TLS/SSL および名前付きパイプ接続を使用して暗号化されていない TCP/IP 接続はセキュアではありません。
暗号化された接続の必須としての構成も参照してください。
すべてのトランスポートプロトコルは、クライアントとサーバー間のトラフィックで圧縮を使用する必要があります。 特定の接続に圧縮と暗号化の両方が使用されている場合、圧縮は暗号化の前に行われます。 詳細は、セクション4.2.8「接続圧縮制御」を参照してください。