본문 바로가기

실무로부터/새로운 사실

[리눅스] MySQL연결시 localhost와 127.0.0.1의 차이주의

리눅스로 MySQL 서버 연결 시 host속성을 설정하는데, 이때 사용하는 localhost 와 127.0.0.1은 차이가 있다.

공통적으로 '자기자신'인 local server을 가리키는 loop back 이지만

- mysql 소켓 파일을 이용하여 접속 시

 

호스트가 localhost로 지정하면 unix domain socket를 이용하여 유닉스 프로세스간의 통신을 한다. 

 mysql -uroot -p --host=localhost -- socket=/tmp/mysql.sock

호스트가 127.0.0.1로  지정시, TCP/IP 통신방식을 사용한다.

> mysql -uroot -p --host=127.0.0.1 --port=3306

 

로컬서버에 설치된 MySQL 을 사용하는 경우에는 둘다 사용해도 괜찮지만 

원격 호스트(외부)에 있는 MySQL서버에 접속 시 127.0.0.1 로 지정하여 사용해야한다.

 

 

 

 

유닉스 도메인 소켓 ? 

TCP의 소켓과 동일한 API로 데이터를 주고받을 수 있는 local file 기반의 소켓이다.

TCP socket 보다 localhost 의 프로세스간 통신속도가 매우 빠르고 메모리 소모가 적다.  

 

 


보고 배움 

https://mimah.tistory.com/entry/MySQL-Server-%EC%97%B0%EA%B2%B0-%EC%8B%9C-localhost%EC%99%80-127001-%EC%B0%A8%EC%9D%B4