MySQL 클라이언트가 사용하는 연결 방법을 어떻게 확인할 수 있습니까?


10

MySQL 클라이언트 (예 mysql:)를 사용할 때 Unix 소켓 파일을 사용하거나 TCP / IP를 사용하여 서버에 연결되었는지 어떻게 알 수 있습니까?

답변:


13

교통 수단 찾기

사용을 시도 netstat -ln | grep 'mysql'하면 출력으로 어떻게 연결되는지 확인할 수 있습니다. 쉘에 액세스 할 수있는 경우

Unix에서 MySQL 프로그램은 호스트 이름 localhost를 다른 네트워크 기반 프로그램과 비교하여 예상과 다른 방식으로 호스트 이름을 특별히 처리합니다. 로컬 호스트에 연결하기 위해 MySQL 프로그램은 Unix 소켓 파일을 사용하여 로컬 서버에 연결을 시도합니다.

포트 번호를 지정하기 위해 a --port또는 -P옵션을 제공 한 경우에도 발생합니다 .

같은 yould가에서 연결 유형을 알고 있다면 내에서 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

프로토콜 유형 :

  • TCP : 로컬 또는 원격 서버에 대한 TCP / IP 연결. 모든 플랫폼에서 사용 가능합니다.
  • 소켓 : 로컬 서버에 대한 Unix 소켓 파일 연결. 유닉스에서만 사용 가능합니다.
  • PIPE : 로컬 또는 원격 서버로의 명명 된 파이프 연결. 창에서만 사용 가능합니다.
  • MEMORY : 로컬 서버에 대한 공유 메모리 연결. 창에서만 사용 가능합니다.

Unix 소켓 파일 연결은 TCP / IP보다 빠르지 만 동일한 컴퓨터의 서버에 연결할 때만 사용할 수 있습니다.


@Anil : 감사합니다. 훌륭한 답변이되었습니다.
Eugene Yarmash
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.