[DEV] 기록

[Docker] Window에서 MySQL 컨테이너 올리는 절차

꾸준함. 2022. 1. 22. 02:15

개요

스프링 배치를 학습하는데 MySQL 컨테이너를 도커를 통해 띄워야 했습니다.

저처럼 도커에 익숙하지 않을 경우 상당히 고생할 수 있으므로 방법을 간단히 정리해보겠습니다.

그리고 저는 Mac OS가 아닌 Window OS에서 진행했다는 점을 미리 알립니다.

Mac OS 설정 방법은 아래 게시글을 참고바랍니다.

https://jaimemin.tistory.com/2039

 

[Docker] Mac OS MySQL 컨테이너 띄우는 절차

개요 기존 게시글에서는 Window OS에서 Docker에 MySQL 컨테이너를 띄우는 절차를 정리했습니다. https://jaimemin.tistory.com/2036 [Docker] Window에서 MySQL 컨테이너 올리는 절차 개요 스프링 배치를 학습하..

jaimemin.tistory.com

 

MySQL 컨테이너 올리고 테이블 생성하는 절차

  • 도커 설치
  • 콘솔 창 열어 도커 이미지 가져오기
    • 윈도우 + R -> cmd 창 열고
    • docker pull mysql 명령어 실행
  • MySQL 컨테이너 설정
    • docker run -d -p 3306:3306 -e {root 비밀번호}=pasword --name {컨테이너명} mysql 명령어 실행
    • 굵은 글씨로 표시한 곳은 사용자가 지정해야 함
    • docker ps -a 명령어를 통해 컨테이너가 정상적으로 띄워졌는지 확인
  • MySQL 컨테이너 CLI 진입
    • mysql -u root -p 명령어 입력 후 기존에 지정한 root 비밀번호 입력하여 진입
  • 계정 생성 후 권한 부여
    • root 계정 외 별도 계정 필요할 경우 진행
    • maintainer 계정을 생성한다고 가정하고 진행
      • CREATE USER 'maintainer'@'%' IDENTIFIED BY '{비밀번호}';  명령어를 통해 계정 생성
      • GRANT 명령어를 통해 maintainer에게 부여하고 싶은 권한 부여
      • root 계정이 아닌 maintainer 계정으로 접속하기 위해 아래의 명령어 실행
        • quit
        • mysql -u maintainer -p
  • DB 생성
    • CREATE DATABASE {데이터베이스명} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 
    • show databases; 명령어를 통해 생성된 것을 확인
    • 여러 개 생성 가능
      • 특정 DB 사용하기 위해 use 데이터베이스명; 명령어 실행
    • 원하는 데이터베이스에 테이블 생성하여 진행

 

MySQL 컨테이너 다시 띄우는 명령어

재부팅하거나 컨테이너를 다시 띄우기 위해서 아래 명령어 실행

docker start 컨테이너명

 

간혹 컨테이너를 띄울 때 포트에 이미 실행되고 있는 프로세스가 있어 아래의 메시지와 함께 실패하는 경우가 있음

Only one usage of each socket address (protocol/network address/port) is normally permitted.

 

이럴 경우 아래 게시글을 참고하여 해당 포트에서 실행 중인 프로세스를 강제 종료 후 실행시키면 문제없이 진행

https://jaimemin.tistory.com/1398

 

Window 사용 중인 포트 종료시키는 방법

웹 개발을 하다보면 코드 수정 후 재가동해야하는 경우가 많은데, 서버를 종료시켰는데도 불구하고 8080 포트가 이미 사용 중이라고 콘솔에 찍히는 경우가 간혹 있습니다. 이럴 경우, 아래와 같

jaimemin.tistory.com

 

반응형