MySQL 실행 에러, 도커(Docker)를 써보자

2021. 1. 19. 12:06Information Technology/Database

MySQL 데이터베이스(DB) 설치 후 아래와 같은 에러가 발생한다면 도커(Docker)를 써보자. 

 

MySQL

 


설치 후 mysql -u root 명령어 사용시 발생된 Access denied 에러

 

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

 

Access denied라고 에러가 발생했다. 크게 해결 방법은 2가지다.

 

1. 에러 코드를 구글에 검색해서 해결한다.

2. 도커 이미지로 MySQL를 사용해 해결한다.

 

여기서는 2번째 방법을 소개한다. 도커는 가상 컨테이너(Container)를 위한 플랫폼이다. 도커 이미지에 필요한 라이브러리와 프로그램만 설치해서 사용한다. 컨테이너(Container)는 이미지이다. 즉, 도커 이미지를 구동시키면 컨테이너가 생성되어 도커 엔진 위에서 컨테이너가 동작하게 된다. 쉽게 VMWare를 써보신 분들은 도커가 VMWare와 같은 역할을 한다고 보면 된다. (엄밀히 말하면 도커와 VMWare는 구조상 차이가 있다. 자세히)

 

이를 토대로 MySQL 실행 과정은 다음과 같다. 좀 더 자세히 알고 싶은 경우는 Docker 101 Tutorial을 참고하길 바란다.

 

1. MySQL 도커 이미지를 다운(pull) 받는다.

2. MySQL 도커 이미지를 구동(run) 한다,

3. MySQL 컨테이너가 생성되어 MySQL 서비스가 실행된다.

 


[중요] 사전에 Docker를 설치해야 한다.

구글에서 docker install 검색 후  운영체제(OS)에 맞게 다운로드(Get Docker) 후 설치하거나 아래 링크를 참고한다.

 

Windows / Mac

 

 


1.  MySQL 도커 이미지를 다운(pull) 받는다.

1. 구글 검색창에 mysql docker 입력한다. mysql - docker hub를 선택한다. 

 

2. MySQL 공식 도커 이미지임을 확인한다. 그리고 docker pull mysql 명령어를 복사한다.

 

MySQL 공식 도커 이미지

 

3. docker pull mysql 명령어를 실행한다.

 

 

3. docker images 명령어를 실행 후 TAG를 잘 확인 해 두자. 

  • REPOSITORY: mysql
  • TAG: latest

 

2. MySQL 도커 이미지를 구동(run) 한다.

 

 

1. 해당 페이지에서 MySQL 도커 이미지 구동 방법에 대해서 설명하고 있다. 터미널 또는 CMD창(윈도 사용자)을 활용하여 아래 명령어를 참고하여 도커 이미지를 구동한다.

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

 

[참고]

 

$ docker run -it --network some-network --rm mysql mysql -hsome-mysql -uexample-user -p

 

3. MySQL 컨테이너가 생성되어 MySQL 서비스가 실행된다.

1. docker ps 명령어를 입력해서 현재 도커 이미지가 컨테이너(CONTAINER)로 구동되고 있는 것을 확인한다.

 

2. docker exec -it mysql mysql -u root -p 명령어를 실행하면 다음과 같이 MySQL를 정상적으로 사용할 수 있다.

 


지금까지 MySQL 데이터베이스(DB) 이미지를 다운(pull) 받아 도커를 통해 MySQL을 실행해보았다. docker 명령어에 대해서는 상세히 다루지 않았다. docker 명령어를 확인하고 싶은 경우 docker help 명령어를 통해서 우리가 사용한 명령어에 대해 확인할 수 있다.