전체방문자

508,219

today 53
yesterday 892
본문 바로가기

Infra/Docker

Docker - Docker를 이용해 MYSQL 설치 (ERROR 2002 Can't connect to local MySQL server through socket /var/run/mysqld/mysqld.sock 해결)

Docker를 이용해 Mysql 설치하기

Docker를 이용해 Mysql 설치하기

https://itnext.io/install-mysql-in-20mins-by-using-docker-3751819e7815

 

 

Docker를 이용해 Mysql을 설치할때의 이점

1. 프론트엔드 개발자가 서버를 잘 모르더라도 개발에 필요한 경우 직접 설치하여 개발이 가능하다

 

2. 특정 Condition에 테스트시 그 조건에 맞는 환경을 저장해놓고 테스트할 수 있다

 

 

 

 

 

 

Docker를 이용해 Mysql 설치

docker가 설치되어있다는 가정하에 진행하도록 하겠습니다.

 

1. mysql image download

우선 mysql 이미지를 pull 합니다. 이미지 이름 뒤, 버전 태그를 생략하면 자동으로 latest 버전이 download 됩니다.

 

 

 

 

 

2. mysql container 실행

-d container를 백그라운드로 실행합니다.

-e 환경변수를 설정합니다. MYSQL_ROOT_PASSWORD 포함 총 3가지 환경변수를 기본적으로 부여하여 mysql을 실행할 수 있습니다. MYSQL_ROOT_PASSWORD 는 이름에서 예측할 수 있듯이, ROOT user의 PASSWORD를 지정하는 환경변수 입니다.

--name 컨테이너의 별칭을 지정합니다.

-p 컨테이너가 외부에 노출할 port를 지정합니다.

 

 

 

 

3. mysql 테스트

mysql 컨테이너를 실행했으니, 이제는 container를 attach하여 사용해보도록 하겠습니다.

 

docker ps 명령어를 통해 실행중인 컨테이너 목록을 확인합니다. mysql이 정상 작동중입니다.

 

컨테이너에 부여한 별칭을 이용해, 컨테이너에 bash쉘을 기본 쉘로하여 tty를 실행하도록 합니다.

 

mysql에 접속하여, 디비를 생성해봅니다.

 

 

 

 

4. Mysql workbench를 이용해 접속

 

mysql workbench를 실행하여 localhost 를 클릭합니다. 현재 host docker에서, 외부로 노출하는 port가 3306이기 때문에 그림에 보이는 설정그대로 연결을 시도하면 됩니다.

 

-e MYSQL_ROOT_PASSWORD=password 를 이용해 부여했던 비밀번호를 입력합니다.

 

container에서 생성했던 testdb가 보입니다.

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

mysql 컨테이너를 실행한뒤, mysql -u root -p 명령어를 이용해 mysql 에 접속하려할 때, 위와같은 에러가 나타나는 경우가 있습니다, 


해결방법

이 경우 docker run 명령어 이후의 options 들의 위치를 바꾸어가며 실행하다보면 해결이됩니다....


 정확한 에러 원인을 발견한다면, 정확한 방법을 다시 작성해놓도록 하겠습니다 ~