개요
PC1에서 MySQL을 이용해 개발한 프로젝트를 PC2에서 실행하려 했으나, MySQL이 설치되어 있지 않아 오류가 발생했습니다.
PC2에 MySQL을 설치할 수는 있지만, 자주 사용하지 않으며 이번 프로젝트에서만 필요하기 때문에,
Docker를 이용해 MySQL을 설치하고 컨테이너 환경에서 데이터를 관리하고자 합니다.
Docker Desktop 설치
다운로드 링크
Windows 환경에서 진행하므로 Docker Desktop을 먼저 설치해 줍니다.
설치 확인
정상적으로 설치가 완료되었다면 cmd 창을 열어 확인해줍니다.
아래 사진처럼 버전이 출력 확인
docker -v
만약 Docker Desktop을 설치했는데 docker 명령어가 작동하지 않으면 환경변수 PATH에 추가해 주면 됩니다.
MySQL 이미지 가져오기
docker pull mysql
이미지 확인
성공적으로 MySQL 이미지를 가져왔는지 확인해 줍니다.
-- DOCKER 이미지 목록 확인
docker images
컨테이너 생성 및 실행 (이미지 실행)
가져온 MySQL 이미지로 컨테이너를 생성(실행) 합니다.
#{} 이 값을 원하는 값으로 설정하면 됩니다.
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=#{PASSWORD} --name #{NAME} #{IMAGE}
- -d : 백그라운드 실행
- -p 3306(로컬):3306(컨테이너 내부) : 포트 설정
- 로컬에서 3306으로 접속하면 컨테이너의 3306 포트와 연결하여 MySQL에 접근 가
- -e MYSQL_ROOT_PASSWORD=#{password} : MySQL 루트 비밀번호 설정
- #{IMAGE} : 이미지는 위에서 가져온 mysql 이미지를 넣으면 됩니다
저는 아래와 같이 실행하였습니다
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql_container mysql
컨테이너 실행 확인
정상적으로 컨테이너가 작동하는지 확인합니다.
( STATUS가 EXIT 아니면 실행 중 )
docker ps -a
여기까지 되었다면 정상적으로 MySQL을 사용할 수 있습니다.
저는 추가로 MySQL 컨테이너에 접속해서 database를 생성하고
디비버를 통해 생성한 database에 연결하는 거 까지 해보겠습니다.
MySQL 추가 설정
MySQL 컨테이너 접속
docker exec -i -t mysql_container bash
root 계정 로그인
명령어 입력 후 자신이 설정한 비밀번호를 입력하면 됩니다.
mysql -u root -p
database 생성
create database test;
database 조회
show databases;
디비버에서 생성한 database 접속
새 데이터베이스 연결 아이콘을 클릭
MySQL 선택
설정한 정보 입력
- Database에 새로 생성한 데이터베이스 명 입력
Test Connection... 클릭
만약 TestConnection 눌렀는데 Public Key Retrieval is not allowed 오류가 뜬다면
연결창에서 Diver properties 선택 후 allowPublicKeyRetrieval 옵션 true로 설정해 줍니다
성공적으로 연결되면 아래처럼 출력됩니다