MySQL 소켓을 언제 사용하고 언제 host : port를 사용합니까?


19

많은 응용 프로그램에서 사용자 이름, 암호 호스트 및 포트를 사용하여 Mysql에 연결할 수 있습니다. 일부는 대신 소켓을 구성 할 수 host:port있습니다.

다른 것보다 분명한 이점이 있습니까? MySQL이 동일한 컴퓨터에있을 때만 소켓이 작동한다고 상상할 수 있습니다. 그렇습니까? 그렇다면 연결하는 대신 해당 소켓을 사용하는 것보다 이점이 localhost:3306있습니까?

나는 네트워킹과 소켓의 장단점에 너무 익숙하지 않기 때문에 중요한 정보를 완전히 잃어 버렸을 수도 있고 내 질문은 단지 바보입니다. 그렇다면 내가 잃어버린 것을 설명해 주시겠습니까?

답변:


19

글쎄요, 간단합니다.

소켓은 파일 기반 통신이므로 다른 시스템에서 소켓에 액세스 할 수 없습니다.

반면에 포트는 전세계에 개방되어 있으며 (구성에 따라 다름) 호스트 + 포트 조합을 사용하여 다른 컴퓨터에서 mysql에 액세스 할 수 있습니다.

또한 소켓을 이해하는 것처럼 파일 형식의 호스트 + 포트 조합입니다. 따라서 (내 지식이 많이가는대로) 그중 하나를 사용하면 분명한 이점이 없습니다.

개인적으로 호스트 + 포트를 선호하지만 코드를 변경하지 않고도 다른 컴퓨터로 코드를 옮길 수 있으므로 코드가 유연 해집니다.

오래된 게시물 에서 붙여 넣기 복사 :

유닉스 소켓은 tcp-overhead가 없기 때문에 조금 빠릅니다. 이 성능 손실이 서버로드의 문제라는 것을 알고 있다면. 서버로드가 많지 않으면이를 인식하지 못합니다.

Jails (FreeBSD) 또는 다른 가상화 기술을 사용하여 예를 들어 MySQL 서버와 웹 서버를 분리하는 경우 소켓 대신 tcp / ip 설정을 사용하는 경우가 많습니다. 방화벽 규칙은 액세스를 제한해야합니다.

소켓이 필수이거나 시스템 설계 (서비스 분리)에 중점을 둘 수 있도록 시스템에 과부하가 걸리는지 확인해야합니다. 그러면 tcp / ip 솔루션이 더 좋습니다.

그래서 긴 대답을 짧게 만드십시오.

예, 성능 차이가 있으며 소켓이 더 빠릅니다. 서버로드가 높지 않은 경우 시스템 설계에 더 적합한 것을 선택하십시오.


그러나 내가 둘 다있을 때 mysqld가 클라이언트와 같은 머신에있을 때; 다른 것을 사용하는 데 차이점이 있습니까? 하나는 더 가볍고 성능이 뛰어나고 오류가 발생하기 쉬운가?
berkes

더 많은 정보로 답변을 업데이트했습니다.
GeekRide

그리고 더 많은 정보.
GeekRide
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.