MySQLクライアント(たとえばmysql
)を使用するときにサーバーに接続するためにUnixソケットファイルを使用するのか、TCP / IPを使用しているのかをどうやって確認できますか?
ベストアンサー1
交通手段を探す
試してみると、netstat -ln | grep 'mysql'
出力を介してどのように接続されているかを確認できます。シェルにアクセスできる場合
Unixでは、MySQLプログラムは、ホスト名localhostを他のネットワークベースのプログラムと比較するときに期待できる方法ではなく特別に扱います。ローカルホストに接続するには、MySQLプログラムはUnixソケットファイルを使用してローカルサーバーに接続しようとします。
これは、ポート番号を指定するため、--port
またはオプションが指定されている場合にも発生します。-P
接続タイプについて知りたい場合以内にmysql CLIは "\s"(状態)コマンドを使用します。
mysql> \s
出力には、次のいずれかのような行が含まれます(Unixの場合)。
Connection: 127.0.0.1 via TCP/IP
または
Connection: Localhost via UNIX socket
特定の転送を強制
クライアントにローカルサーバーへのTCP / IP接続を確立させるには、ホスト名の値127.0.0.1またはローカルサーバーのIPアドレスまたは名前を使用または--host
指定します。-h
オプションを使用して、localhostに対して接続プロトコルを明示的に指定することもできます--protocol=TCP
。たとえば、
shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP
この--protocol={TCP|SOCKET|PIPE|MEMORY}
オプションは、サーバーへの接続に使用されるプロトコルを明示的に指定します。これは通常、追加の接続パラメータが目的のプロトコルとは異なるプロトコルを使用する場合に便利です。たとえば、デフォルトでは、Unixのlocalhostへの接続はUnixソケットファイルを使用して確立されます。
shell> mysql --host=localhost
TCP/IP 接続を強制するには、次の--protocol
オプションを指定します。
shell> mysql --host=localhost --protocol=TCP
契約タイプ:
- TCP:ローカルまたはリモートサーバーへのTCP / IP接続。すべてのプラットフォームで利用可能です。
- SOCKET:ローカルサーバーへのUnixソケットファイルの関連付け。 UNIX にのみ適用されます。
- PIPE:ローカルまたはリモートサーバーへの名前付きパイプ接続。 Windowsでのみ使用できます。
- MEMORY:ローカルサーバーへの共有メモリ接続。 Windowsでのみ使用できます。
Unixソケットファイルの接続はTCP / IPよりも高速ですが、同じコンピュータ上のサーバーに接続するときにのみ使用できます。