개요
스프링 배치를 학습하는데 MySQL 컨테이너를 도커를 통해 띄워야 했습니다.
저처럼 도커에 익숙하지 않을 경우 상당히 고생할 수 있으므로 방법을 간단히 정리해보겠습니다.
그리고 저는 Mac OS가 아닌 Window OS에서 진행했다는 점을 미리 알립니다.
Mac OS 설정 방법은 아래 게시글을 참고바랍니다.
https://jaimemin.tistory.com/2039
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
반응형
'[DEV] 기록' 카테고리의 다른 글
[SpringBoot] LoggerFactory is not a Logback LoggerContext but Logback is on the classpath (0) | 2022.01.25 |
---|---|
[Intellij] 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. (0) | 2022.01.22 |
[SpringBoot] 순환참조 허용 설정 방법 (0) | 2022.01.04 |
[Git] error: cannot lock ref ref/remotes/origin ~' (0) | 2021.12.21 |
[Gradle] Error:Failed to open zip file. Gradle's dependency cache may be corrupt (0) | 2021.12.02 |