Database
Localhost와 127.0.0.1의 차이
알면 알 수록 재밌다!
2024. 3. 12. 14:20
mysql -u root -p --host=127.0.0.1
mysql -u root -p --host=localhost
데이터베이스에 접속하다보면 위처럼 혼용하여 사용하곤 한다.
그래서 비교해보고자 한다.
127.0.0.1
ip주소가 나와있는것을 보면 유추가 되듯, TCP/IP를 통해 MySQL에 접속하는 것이다.
네트워크 인터페이스와 연관된 호스트로 로컬 Loopback을 이용하여 IP를 찾아서 로컬호스트에 접속하는 것이다.
TCP/IP(Transmission Control Protocol/Internet Protocol) 통신이란?
OSI 7계층 모델을 대체하며 4계층으로 구성된다(애플리케이션, 전송, 네트워크, 링크 계층)
네트워크 연결 과정을 거쳐 통신을 하기 때문에 다른 위치에 컴퓨터가 있어도 연결 가능하다.
요약하면, 127.0.0.1로 호출하면 루프백 주소가 내 컴퓨터를 가리켜서 내 컴퓨터와 통신이 된다.
Localhost
localhost는 호스트 이름으로 소켓파일(운영 체제에 따라 /etc/hosts 에 위치한 파일)을 통해 MySQL에 접속하는 것이다.
Unix의 프로세스 간 통신(IPC; Inter Process Communication)의 일종인 Unix domain socket을 이용해 접속하게 된다.
Unix 소켓통신이란?
같은 프로세스 내 통신을 위한 메커니즘이다.
네트워크 오버헤드 없이 직접 메모리 공간을 공유하여 데이터를 주고받기 때문에 TCP/IP보다 빠르다.
같은 컴퓨터 내에서 통신을 하기 위해 사용되는 것
Local 환경
집의 공유기 주소가 바뀔수는 있지만
127.0.0.1 처럼 항상 자기자신을 바라보면 ip 주소의 경우 내 컴퓨터에서 작동하므로 바뀔 염려가 없다.
그래서 127.0.0.1이나 localhost나 어떤것을 사용해도 상관이 없다.
localhost와 127.0.0.1 사이의 가장 큰 차이점은 표현의 차이에 불과하다.
localhost는 사람이 이해하기 쉽도록 설계된 도메인 이름이며, 127.0.0.1는 이에 대응하는 숫자 형태의 IP 주소이다.
참고
real mysql 8.0 2장 29page