MySQLクライアント(例mysql
)を使用している場合、Unixソケットファイルを使用してサーバーに接続したのか、TCP / IPを使用してサーバーに接続したのかを判断するにはどうすればよいですか?
使ってみる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接続を確立するようにするには、--host
または-h
を使用して、ホスト名の値127.0.0.1、またはローカルサーバーのIPアドレスまたは名前を指定します。--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
Unixソケットファイル接続はTCP / IPよりも高速ですが、同じコンピューター上のサーバーに接続する場合にのみ使用できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加