컨테이너로 구동하는 MySQL(포트: 1,3306) 에 연결하기 위해 command 에서 다음 명령을 실행했는데 socket 으로 연결할 수 없다는 에러가 발생했습니다.

$ mysql -u root -p -h localhost -P 13306

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
BASH

옵션을 잘못 줬나 해서 매뉴얼을 확인하고 다음과 같이 포트 옵션을 long 형식으로 지정해도 마찬가지의 에러가 발생했습니다.

$ mysql -u root -p -h localhost --port=13306
BASH


구글링해보니 MySQL 은 -h 로 호스트를 지정해도 localhost 일 경우 socket 을 사용한다고 합니다

For a given connection, if the transport protocol is not specified explicitly, it is determined implicitly.
For example, connections to localhost result in a socket file connection on Unix and Unix-like systems, and a TCP/IP connection to 127.0.0.1 otherwise.


로컬에 컨테이너로 구동하는 MySQL 에 연결할 경우 host 에 127.0.0.1 을 넣고 연결하면 됩니다.

$ mysql -u root -p -h 127.0.0.1 -P 13306
BASH



같이 보기

Ref