본문 바로가기
👾개발지식/DevOps

도커를 사용해서 MYSQL설치하고 접속하기

by 서버요정 호토론 2021. 7. 28.

[학습목표]

💡 Docker를 이용해서 MySQL 컨테이너를 생성한다
💡 Workbench와 Bash를 이용해서 데이터베이스에 접속한다.

 

[개발환경]

ubuntu 20.04

 

1. MySQL 도커 컨테이너 생성하기

# 1. mysql 이미지 불러오기
sudo docker pull mysql

# 2. 도커 이미지 확인
sudo docker images

# 3. 도커 컨테이너 생성
sudo docker run -d -p 3305:3306 -e MYSQL_ROOT_PASSWORD=1234 --restart=unless-stopped -v /home/ubuntu/db:/var/lib/mysql --name test_mysql mysql

 -d  : detached모드로 컨테이너 실행, 컨테이너를 백그라운드에서 동작하는 애플리케이션으로써 실행하도록 설정

 -p 3305:3306  : 컨테이너의 포트를 호스트의 포트와 바인딩

                     호스트3305번 포트를 컨테이너3306번 포트와 연결하겠다

 -v /home/ubuntu/db:/var/lib/mysql  : 호스트와 볼륨을 공유

                     호스트/home/ubuntu/db폴더와  컨테이너/var/lib/mysql폴더를 동기화(연결)하겠다

 -e  : 컨테이너에서 사용할 환경변수 설정

 MYSQL_ROOT_PASSWORD=1234  : mysql root 비밀번호를 1234로 지정하겠다

 --name test_mysql  : 컨테이너의 이름을 test_mysql로 지정하겠다

--restart=  : 컨테이너 내부의 프로세스 종료시 재시작 정책 설정

 unless-stopped  : 부팅시 자동으로 컨테이너를 재시작 하겠다

 

 

 

2-1. MySQL Workbench를 이용해서 MYSQL컨테이너 접속하기

매번 계정정보를 입력하지 않고 북마크처럼 저장해놓고 클릭하기만 하면 접속이 가능하다

MySQL 워크벤치를 설치하고 + 버튼을 눌러주세요

 

(1) 어떤 데이터베이스인지 알아보기 쉽도록 이름을 적어줍니다

(2) 호스트이름을 적어줍니다 (주소를 적어도 됩니다)

(3) 1번에서 Mysql 컨테이너를 생성할때 만들었던 호스트의 포트번호를 입력해줍니다. (1번의 경우 3305)

(4) 모든 정보를 입력했다면 성공적으로 연결이 되는지 테스트

 

1번에서 컨테이너를 생성할 때 지정한 비밀번호(1234)를 입력한다

 

 

이렇게 뜬다면 연결 성공!!

 

2-2. bash를 이용해서 MYSQL컨테이너 접속하기 

# 1. 도커 컨테이너 bash 접속
sudo docker exec -it test_mysql bash

 -i -t  : 컨테이너 내부로 진입하도록 attach 가능한 상태로 설정

 bash  : bash를 이용해서 접속

 

# 2. mysql 접속
mysql -u root -p

# 3. 패스워드 입력
1234

 

 

3. MySQL 컨테이너 접속 후 사용자 생성 및 권한 부여

# 1. DB 생성
create database test1;

# 2. 사용자 생성
CREATE USER 'gildong'@'%' IDENTIFIED BY '1234';

 gildong  이라는 사용자 생성

 %  : 외부 접근 허용

 1234  : 비밀번호 설정

 

# 3. 사용자 권한 부여
GRANT ALL PRIVILEGES ON *.* TO 'gildong'@'%';

# 4. 권한 새로고침(안해도 됨)
flush privileges;

 

댓글